C ++入門:第3章概要


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

名前空間のステートメントの3.1を使用して

基本的な内容は:

  1. スコープ演算子(::):オペレータの名前の右の名前を見つけるために、左から示さスコープコンパイラ。
  2. (名前空間::名を使用して)ステートメントを使用して。それぞれの名前は、独自の宣言を持っている、としなければならない「;」終わり。

備考:

  1. ヘッダファイルを使用すると、ステートメントを含めることはできません。
  2. std :: cinを、一般的に大規模なプロジェクトのために使用使用して、一般的に小規模なプロジェクトに使用名前空間stdを使用。

3.2標準ライブラリの文字列型

基本的な内容は:

  1. コピー初期化(等号)(等号を使用せずに)直接初期化。
  2. 文字列:文字の可変長配列です。定義された文字列オブジェクト、初期化動作。
  3. トラバースと修正文字列オブジェクト。

備考:

  1. 初期値は、唯一の、または直接コピー初期化初期化である場合、初期値は、一般的に直接初期化することによって、複数の反復される場合。
  2. CINサイクルファイル終了マーカーや違法入力端;入力文字列の先頭の空白(スペース、改行、タブなど)、ブランクの一端無視オブジェクトのgetlineは改行で終了しました。
  3. getlineの出力が改行を含んでいない、保存せずに、すなわちを改行、改行をお読みください。
  4. 戻り値は文字列:: size_type(符号なし整数)で、「\ 0」をstr.size()が含まれていません、STRの長さを取得し、一般的にint型を混在させないでください。str.emptyは()strが空であるかどうかを決定します。
  5. 異なる種類の文字列リテラル文字列、オブジェクトの文字列リテラル、その加算演算子は、文字列リテラルミックス(+)文字列オブジェクトの少なくとも一面の両側に確保する必要があります。
  6. 文字を横断し、修正する3つの方法:範囲、添字、反復子のため。
  7. 私たちは、CNAMEではなく名.h、名.h名で定義されたCNAME定義された名前で下位の名前空間stdが、ではないですC標準ライブラリファイルのC ++バージョンを使用することをお勧めします。
  8. 下付き文字列型文字列:: size_type、インデックスは添字の合法性を確認しなければならない、()0より大きくサイズ未満でなければなりません。

3.3標準ライブラリ型ベクター

基本的な内容は:

  1. ベクター(コンテナ)は、同じ型のオブジェクトのコレクションを表しています。
  2. 定義と初期化ベクトルオブジェクト。値が初期化されます。
  3. ベクトル関連例えばv.push_backなどの操作、()、v.empty()、v.size()などが挙げられます。

備考:

  1. コンパイラクラスを生成したり、ノートの機能を書くに相当する、クラスまたは関数テンプレートではありません。インスタンス化されたテンプレートは、コンパイラへのクラスまたは関数型のインスタンスを使用することに留意すべきとき。
  2. テンプレートベクトルは、ベクトルタイプによって生成された型は、このようなベクターとして、ベクター内の要素のタイプが含まれている必要がありません
  3. 参照は、参照を含むいかなるベクターが存在しない、オブジェクトではありません。
  4. 3つの例外に初期化:コピー初期設定のみの初期値を提供するだけのコピーの初期化または中括弧初期基づいて初期値、値のリストの最初の要素は、リストの形で括弧で初期化することができます。
  5. 括弧を直接初期化したとき、その値は、構築ベクターオブジェクトに使用され、その値は、ベクトルオブジェクト型の種類と一致する場合、直接初期化ブレース場合、その値は、別段の構築ベクターオブジェクトに使用される、リストを初期化するために使用されます。
  6. ベクトルオブジェクトは、効率を向上させる一般に、第1の空のベクターオブジェクトを作成し、動的に要素を追加することができます。
  7. ボディは、すべてのサイズトラバーサルシーケンスのための文のスコープを変更することはできません。例えば、要素は、ループ本体のベクトルオブジェクトに追加することができません。
  8. 文字列オブジェクトのサイズ()戻り型が文字列:: size_typeは、ベクターは、ベクター:: size_typeのサイズ()戻り型オブジェクトであり、要素タイプを含める必要があります。
  9. ベクトル文字列オブジェクトと添字オペレータのみが存在する元素(または修飾トラバーサル)にアクセスできるオブジェクト、構成要素は、(追加)を添加することができません。

3.4はじめにイテレータ

基本的な内容は:

  1. 反復子は、オブジェクトへの間接アクセスを提供し、同様にポインタ。開始()反復子の終了後イテレータ、終了()リターンの最初の要素へのポインタを返します。
  2. イテレータの種類イテレータ、const_iteratorの。
  3. イテレータの操作。

備考:

  1. コンテナが空である場合、すべてのイテレータが終了した後、()==エンド()を始めます。
  2. エンド()反復子が実際に要素の終了後に復帰を指していない、それが逆参照を通じてインクリメントすることはできません。
  3. =コンテナと標準ライブラリのすべてのイテレータが有効である、<添字演算子と効果的ではないかもしれません。
  4. 標準イテレータのいくつかのタイプを分析:コンテナ支持要素または要素へのアクセスは、他の要素に一回の操作で移動させることができます。
  5. CBEGIN()とCEND()の戻り値はconst_iteratorのです。
  6. ベクター上の2つの制限:ベクターは、ループの目標範囲に要素を追加することができ、任意のベクトルオブジェクトは、運転容量を変更することができる(例えば、一back)は反復子が失敗する原因となります。
  7. 任意使用イテレータループ要素がコンテナイテレータを所属に追加することができません。
  8. 2回の反復子を減算し、その結果、それらの間の距離であり、型difference_type(符号付き整数)。

3.5アレイ

基本的な内容は:

  1. アレイのサイズは、オブジェクト格納容器の同じタイプの固定されています。
  2. アクセスの配列を定義し、初期化します。
  3. 配列ポインタ演算を持つ配列の最初の要素への配列ポインタに対応します。
  4. すなわち、Cスタイルの文字列 '\ 0' 文字列の最後に、相関関数はstrlen§、strcmpの(P1、P2)、strcatは(P1、P2)、strcpyの(P1、P2)を持っています。
  5. Cスタイルの文字列戻りc_str;文字列リテラルは、アレイ「\ 0」の代替を終了するために使用することができる配列は、ベクトルを初期化することができます。

備考:

  1. アレイのデフォルトの初期化、もし素子アレイ初期化デフォルト値が定義されていない関数本体、。
  2. 彼らはヌル文字「\ 0」が含まれているかどうかに注意を払う必要があります文字の配列を使用してください。
  3. CおよびC ++でコピーすることが許可されていないか、別の配列への配列のコピー。これは、ポインタ配列ではなく、その逆に設定することができます。
  4. 下付き文字列型:文字列:: size_type;ベクトル添字タイプ:ベクトル:: size_type;配列の添字タイプ:size_tの。インデックスは、配列のサイズよりゼロ未満大きくなければなりません。
  5. ポインタは、イテレータでも(開始)とEnd()、ヘッドポインタとテールポインタを返します。
  6. ポインタ減算、結果の型ptrdiff_tの、反復子減算、結果の型はdifference_typeあります。
  7. インデックスのライブラリタイプが符号なし型、構築されていない添字unsigned型(符号無しタイプよりも大きい範囲で表される負とすることができる)でなければならないが、順番に通常size_tのように定義された正確な安全性を確保するために(符号なし) 。
  8. 配列の「\ 0」末端ようにポインタを渡される関数Cスタイルの文字列について。strcpyやstrcatのを使用する前に、対象の文字列が十分な大きさであることを確認する必要があります。
  9. あなたは、配列やその他のオブジェクトの初期化ベクトルの配列にすることはできませんが、ベクトルの配列を初期化することができます。
  10. 組み込みの配列とポインタの使用を回避するC ++プログラムの適切なベクターおよびイテレータ可能。

3.6多次元配列

基本的な内容は:

  1. 多次元配列は、配列の配列です。
  2. 多次元配列添字範囲に対する参照、ポインタタイプエイリアスを初期化します。

備考:

  1. する処理多次元アレイを有する範囲は、最も内側のループに加えて、ループ制御変数は、他の参照型であるべきです。
公開された77元の記事 ウォン称賛25 ビュー10000 +

おすすめ

転載: blog.csdn.net/qq_34801642/article/details/103957185