第 3 章 C++: 文字列、ベクトル、配列

php是最好的语言
リリース: 2018-08-06 10:36:00
オリジナル
2378 人が閲覧しました

第 2 章では 組み込み型 を紹介し、この章では 抽象データ型ライブラリ を紹介します。

- その中で、stringvector は 2 つの最も重要な標準ライブラリ タイプであり、前者は 可変長文字列 をサポートします。 , 後者は、可変長コレクションを表します。
- もう 1 つの標準ライブラリ タイプは iterator です。これは文字列とベクトルのサポート型であり、文字列内の文字やベクトル内の要素にアクセスするためによく使用されます。

第 3 章 文字列、ベクトル、配列

  • ヘッダー ファイルには using ステートメントを含めないでください。

#標準ライブラリ型文字列

#include <string>using std::string
ログイン後にコピー

  • #初期化文字列

  • ##直接初期化 (直接初期化)
    • コピー初期化 (コピー初期化): 等号を使用します
    • string s1;string s2(s1);string s2 = s2;string s3("hiya");string s3 = "hiya";string s4(10, &#39;c&#39;); //s4的内容是cccccccccc
      ログイン後にコピー


    文字列オブジェクトの操作
  • 1. cout << s2. cin >> s         //将string对象读入s,遇到空白停止3. getline(is, s)   //从输入流is中读取一行赋给s(换行符被读取了,但被丢弃而没有赋给s),返回is4. s.empty()        //s为空返回true,否则返回false5. s.size()6. s[n]             //返回s中第n个字符的引用,位置n从0计起          
    7. s1 + s2          //返回s1和s2连接后的结果8. s1 = s29. s1 == s210. s1 != s211. <, <=, >, >=
    ログイン後にコピー

  • #論理否定演算子 (!)
    • ##string::size_type type
    • : s.size() の戻り値の型は、文字列クラスのサポート型です。任意の文字列オブジェクトのサイズを格納できる符号なし型の値です。
  • 文字列オブジェクト内の文字の処理

  • cctypeヘッダファイル:単一文字を判定または処理する関数

    isupper(c)      //c是大写字母时为真islower(c)tolower(c)      //如果c是大写字母,则输出对于的小写字母;否则原样输出toupper(c)isalpha(c)      //c是字母时为真isdigit(c)      //c是数字时为真isalnum(c)      //c是字母或数字时为真ispunct(c)      //c是标点符号时为真isspace(c)      //c是空白时为真(即c是空格、横向制表符、纵向制表符、回车符、换行符、进纸符的一种)iscntrl(c)      //c是控制字符时为真isgraph(c)      //c不是空格但可打印时为真isprint(c)      //c是可打印字符时为真(即c是空格或具有可视形式)isxdigit(c)     //十六进制数
    ログイン後にコピー
    • name.h の形式で、C 標準ライブラリ ヘッダー ファイルの C バージョンを使用します。C のこれらのファイルは cname という名前で、内容は同じで、ヘッダー ファイル cname で定義された名前は以下に属します。名前空間 std.

    • #Range for

      (range for)statement
  • for (declaration : expression)
        statement
    
    例如:string str("some string");//每行输出str中的一个字符for(auto c : str)    cout << c <<endl;
    ログイン後にコピー

    標準ライブラリ型ベクトルvector は

    class template
  • (クラス テンプレート) です。ベクトルは、すべて同じタイプのオブジェクトのコレクションを表します。コレクション内の各オブジェクトには、オブジェクトにアクセスするために使用される対応するインデックスがあります。 Vector は、
container

(コンテナ) とも呼ばれます。

Vector オブジェクトの定義と初期化

vector<T> v1vector<T> v2(v1)vector<T> v2 = v1vector<T> v3(n, val)vector<T> v4(n)vector<T> v5{a,b,c...}vector<T> v5 = {a,b,c...}
ログイン後にコピー
  • リスト初期化ベクトル オブジェクト

vector<string> articles = {"a", "an", "the"};
ログイン後にコピー
  • ベクトル オブジェクトに要素を追加します

  • ベクトル オブジェクト内の正確な数は実行時までわかりません:
string word;vector<string> text;while (cin >> word) {
    text.push_back(word);
}
ログイン後にコピー
  • Vector オブジェクトは効率的に拡張できます

    : Vector は実行時に要素を効率的かつ迅速に追加できます。
    • ループ本体に要素をベクトル オブジェクトに追加するステートメントが含まれている場合、ループの範囲を使用することはできません。

    • push_back

      : 値をベクター オブジェクトの末尾要素として扱い、それをベクター オブジェクトの「最後尾 (後方)」に「プッシュ」します。

    • vector<int> v2;for(int i=0; i != 100; ++1)
          v2.push_back(i);
      ログイン後にコピー
    • その他のベクトル演算

    • v.empty()
      v.size()
      v.push_back(t)
      v[n]        //返回v中第n个位置上元素的引用v1 = v2v1 = {a,b,c...}v1 == v2v1 != v2
      <, <=, >, >=
      ログイン後にコピー
    イテレータ iterator
  • 一般的なメカニズム: 実装添字演算子を使用して、文字列オブジェクトの文字またはベクトル オブジェクトの要素にアクセスします。

  • ポインター型と同様に、オブジェクトへの間接的なアクセスを提供します。

開始メンバーと終了メンバー

//由编译器决定b、e的类型//b表示v的第一个元素,e表示v尾元素的下一个元素auto b = v.begin(), e = v.end();    //b、e类型相同
ログイン後にコピー

  • 終了メンバーによって返される反復子は、通常、

    末尾反復子 (オフ-the-end iterator)

    、または略して末尾反復子。
    • コンテナが空の場合、begin と end は両方の末尾反復子を返します。

    • #標準コンテナ
    • イテレータ演算子

    • #rrreerrree
  • # イテレータの型

イテレータを含む標準ライブラリは、イテレータと const_iterator を使用してイテレータの型を表します:
    *iter           返回迭代器iter所指元素的引用iter->men       解引用iter并获取钙元素的名为mem的成员,等价于(*iter).mem++iter--iteriter1 == iter2iter1 != iter2
    ログイン後にコピー
  • 参考: C 入門第 5 版

    第 2 章 はじめに
  • 組み込み型、この章では、

    抽象データ型ライブラリ

    を紹介します。

    - その中で、

    string

    vector は 2 つの最も重要な標準ライブラリ タイプです。前者は 可変長文字列 をサポートし、後者は # を表します## 可変長コレクション
    - もう 1 つの標準ライブラリ タイプは iterator です。これは文字列とベクトルのサポート型であり、文字列内の文字やベクトル内の要素にアクセスするためによく使用されます。 関連記事: 第 1 章 C: 関数の戻り値、GNU コンパイラ コマンド

    第 2 章 C: 変数と基本型

    以上が第 3 章 C++: 文字列、ベクトル、配列の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
c++
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート