【c++primer読書ノート】【第3章】文字列、ベクトル、配列

2689 ワード

一、標準ライブラリタイプstring
1.stringの初期化
string s1;           //     ,s1     
string s2(s1);        //     ,s2 s1   
string s2=s1;        //     ,s2 s1   
string s3(“value”);   //     ,s3    “value”   
string s3=“value”    //     ,s3    “value”   
string s4(n,’a’);      //     ,s4       n   a    

2.getline関数は、改行が発生するまでテキスト全体を読み込みます.
3.size関数はstringオブジェクトの文字数を返し、string::size_を返します.typeタイプの値です.記号なしです.
4.関係演算子<,<=,>,>=2つのstringオブジェクトのサイズを辞書順に比較します.
5.emptyメンバー関数はstringオブジェクトが空の場合trueを返し、そうでない場合falseを返すことを表す.
sizeメンバー関数はstringオブジェクトに返される文字の数を表します.
6.加算演算子の2回の演算対象の少なくとも1つはstringである.
string s2 = s1 + ""; //  
string s2 = "hello " + " world"; //  

7.stringの各文字を範囲forで操作する
string str("helloworld");
for(auto c:str)
   cout<<c<<endl;

8.下付き演算子が受け取るパラメータはstring::size_typeタイプの値、戻り値はその位置文字の参照です
二、標準ライブラリタイプvector
1.vectorの初期化
vector<T> v1;    //      ,    v1  vector
vector<T> v2(v1); // v1         v2 ,v1        v2    
vector<T> v2=v1;  //   vector<T> v2(v1)
vector<T> v3(n);  //v3  n             
vector<T> v4(n, v);  //v4  n   v   
vector<T> v5{a,b,c…};  //v5           ,             
vector<T> v5={a,b,c…};  //   vector<T> v5{a,b,c…}

2.上記第4のケースの初期化では、
vectorオブジェクトの要素がintなどの組み込みタイプの場合、要素の初期値は自動的に0に設定されます.
Tがある種類であり、デフォルトの構造関数を含む場合、Tは構造関数に従って初期化される.
上記の2つの状況に合致しない場合は、vectorを初期化する際に、要素をどのように初期化するかを指摘する必要があります.
ループボディの内部にvectorオブジェクトに要素を追加する文が含まれている場合は、範囲forでループすることはできません.
3.vectorのemptyとsizeの2つのメンバー関数とstringの同名メンバー関数の機能が一致する
三、反復器
1.各標準ライブラリコンテナは、各要素を巡回するための反復器を定義します.beginメンバー関数は最初の要素を指す反復器を担当し、end関数は末尾要素の次の位置を指す反復器を担当します.つまり、この反復器は存在しない末尾要素を指します.
2.反復器タイプ
vector<int>::iterator it;  //it   vector<int>   
vector<int>::const_iterator it; //it   vector<int>   

3.反復演算
反復器が同じコンテナ内の要素または末尾の要素の次の位置を指す限り、減算され、結果は反復器の距離であり、タイプはdifferenceである.type;
四、配列
1.配列のコピーと割り当ては許可されていません
int a[]={1,2,3};
int a2[]=a;   //  ,               
a2=a       //  ,               

2.c++11 beginとendという2つの関数を導入
#include<iostream>
using namespace std;
int main(){
    int ia[]={1,2,3,4,5,6,7,8};
    int *pbeg=begin(ia);//  ia      
    int *pend=end(ia);//  ia           
    for(;pbeg!=pend;++pbeg)
        cout<<*pbeg<<" ";
    cout<<endl;

    system("pause");
    return 0;
}