0Pricing
C++ Academy · レッスン

ビューの作成

文字列に対するビューを構築します

「ビューの作成」は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フィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. string_viewを使う理由
  2. ビューの作成
  3. 落とし穴とライフタイム
  4. 文字列アルゴリズム
← C++ Academyに戻る