ビューの作成
文字列に対するビューを構築します
「ビューの作成」はCoddyKit上の無料C++ Academyレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはC++ Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 C++ Academyコースには全4レッスンが含まれています。
文字列リテラルから
最も簡単なビューは文字列リテラルから作成できます。長さは自動的に計算されます。
#include <iostream>
#include <string_view>
int main() {
std::string_view sv = "automatic length";
std::cout << sv.size() << "\n";
}std::stringから
std::stringは暗黙的にビューへ変換できるため、コピーせずに内容を参照できます。
#include <iostream>
#include <string>
#include <string_view>
int main() {
std::string s = "owned text";
std::string_view sv = s;
std::cout << sv << "\n";
}ポインターと長さから
文字へのポインターと明示的な長さからビューを構築できます。null終端されていないバッファーに便利です。
#include <iostream>
#include <string_view>
int main() {
const char buf[] = {'H','e','l','l','o','!'};
std::string_view sv(buf, 5);
std::cout << sv << "\n"; // Hello
}svリテラルサフィックス
svサフィックス(std::string_view_literals由来)を使うと、ビューを直接作成でき、埋め込まれたnull文字も正しく扱えます。
#include <iostream>
#include <string_view>
using namespace std::string_view_literals;
int main() {
auto sv = "ready"sv;
std::cout << sv.size() << "\n";
}substrによるスライス
substr(pos, count)は同じバッファー内の新しいビューを返します。文字列を新たに確保せず、テキストの一部を参照できます。
#include <iostream>
#include <string_view>
int main() {
std::string_view sv = "2026-05-30";
std::cout << sv.substr(0, 4) << "\n"; // 2026
}remove_prefix
remove_prefix(n)は開始ポインターを進めることで、ビューの先頭側を短くします。コピーは発生しません。
#include <iostream>
#include <string_view>
int main() {
std::string_view sv = " trimmed";
sv.remove_prefix(3);
std::cout << sv << "\n"; // trimmed
}remove_suffix
remove_suffix(n)は長さを減らすことで、ビューの末尾側を短くします。
#include <iostream>
#include <string_view>
int main() {
std::string_view sv = "data.csv";
sv.remove_suffix(4);
std::cout << sv << "\n"; // data
}空のビュー
デフォルト構築されたビューは空です。empty()はtrueを返し、size()はゼロになります。
#include <iostream>
#include <string_view>
int main() {
std::string_view sv;
std::cout << sv.empty() << " " << sv.size() << "\n";
}ビューのコピーは低コスト
ビューを別のビューに代入すると、コピーされるのはポインターと長さだけで、どちらも同じ文字を参照します。
#include <iostream>
#include <string_view>
int main() {
std::string_view a = "shared";
std::string_view b = a;
b.remove_prefix(3);
std::cout << a << " " << b << "\n"; // shared red
}stringへの変換
データを所有する必要がある場合は、ビューからstd::stringを構築します。この時点で意図的にコピーが発生します。
#include <iostream>
#include <string>
#include <string_view>
int main() {
std::string_view sv = "copy me";
std::string owned{sv};
std::cout << owned << "\n";
}構築方法の選択
通常のケースではリテラルと暗黙的変換を使用し、生のバッファーにはポインターと長さの形式を使用します。また、確保せずにスライスし直すにはsubstrやremove_*を使用します。
理解度チェック
ビューの構築方法についての理解度を確認しましょう。
まとめ
ビューの作成方法について学びました。
- リテラル、文字列、またはポインターと長さから作成できます。
svサフィックスでビューを直接作成できます。substr、remove_prefix、remove_suffixを使うと、確保せずにスライスし直せます。- データを所有する必要がある場合は
std::stringを構築します。
よくある質問
「ビューの作成」レッスンは無料ですか?
はい。「ビューの作成」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、C++ Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 C++ Academyコースには全4レッスンが含まれています。
「ビューの作成」で何を学びますか?
文字列に対するビューを構築します ブラウザで直接実行するハンズオンコードでC++ Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
C++ Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのC++ Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。
「ビューの作成」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このC++ Academyレッスンでコードを書いて実行できますか?
はい。すべてのC++ Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。