C++vectorの使い方

19310 ワード

vectorはC++STLの重要なメンバーであり、ヘッダファイルを含める必要があります.
#include;

一、vectorの初期化:以下のように5つの方法があります.
 (1) vector<int> a(10); //   10        (          ,             ),       ,       。2)vector<int> a(10,1); //   10        ,           13)vector<int> a(b); // b     a  ,       4)vector<int> a(b.begin(),b.begin+3); //   a  b  0   2 ( 3 )  5int b[7]={1,2,3,4,5,9,8};
        vector<int> a(b,b+7); //        

二、vectorオブジェクトのいくつかの重要な操作を例に挙げて説明します.
(1)a.assign(b.begin(), b.begin()+3); //b   , b 0~2          a
(2)a.assign(4,2); // a  4   ,      2
(3)a.back(); //  a       
(4)a.front(); //  a      
(5)a[i]; //  a  i   ,    a[i]  2013-12-07
(6)a.clear(); //  a    
(7)a.empty(); //  a    ,    ture,     false
(8)a.pop_back(); //  a         
(9)a.erase(a.begin()+1,a.begin()+3); //  a  1 (  0   )  2   ,          a.begin()+1  (   )   a.begin()+         3(    )
(10)a.push_back(5); // a              ,   5
(11)a.insert(a.begin()+1,5); // a  1   (  0   )       5, a 1,2,3,4,      1,5,2,3,4
(12)a.insert(a.begin()+1,3,5); // a  1   (  0   )     3  ,    5
(13)a.insert(a.begin()+1,b+3,b+6); //b   , a  1   (  0   )     b  3     5   (   b+6), b 1,2,3,4,5,9,8         ,      1,4,5,9,2,3,4,5,9,8
(14)a.size(); //  a      ;
(15)a.capacity(); //  a               
(16)a.resize(10); // a         10 ,   ,   ,    
(17)a.resize(10,2); // a         10 ,   ,   ,   2
(18)a.reserve(100); // a   (capacity)   100,        a.capacity();       100.          a                        ,                ( a             ,         ) 
(19)a.swap(b); //b   , a     b           
(20)a==b; //b   ,         !=,>=,<=,>,<

三、vectorに順次アクセスするいくつかの方法は、(1)ベクトルaに要素を追加する
vector<int> a;
for(int i=0;i<10;i++)
a.push_back(i);

2、配列から要素を選択してベクトルに追加することもできます
int a[6]={1,2,3,4,5,6};
vector<int> b;
for(int i=1;i<=4;i++)
b.push_back(a[i]);

3、既存のベクトルから要素を選択してベクトルに追加することもできます
int a[6]={1,2,3,4,5,6};
vector<int> b;
vector<int> c(a,a+4);
for(vector<int>::iterator it=c.begin();it<c.end();it++)
b.push_back(*it);

4、ファイルから要素を読み込んでベクトルに追加することもできます
ifstream in("data.txt");
vector<int> a;
for(int i; in>>i)
    a.push_back(i);

5、【誤区】
vector<int> a;
for(int i=0;i<10;i++)
    a[i]=i;

//このやり方も似たようなやり方も間違っています.最初は私もこのような間違いを犯したことがありますが、後に発見しました.下付き文字はすでに存在する要素を取得するためにしか使用できませんが、現在のa[i]は空のオブジェクトです.
(2)ベクトルから要素1を読み出し、下付きで読み出す
int a[6]={1,2,3,4,5,6};
vector<int> b(a,a+4);
for(int i=0;i<=b.size()-1;i++)
    cout<<b[i]<<" ";

2、遍歴器による読み取り
int a[6]={1,2,3,4,5,6};
vector<int> b(a,a+4);
for(vector<int>::iterator it=b.begin();it!=b.end();it++)
    cout<<*it<<" ";

四、いくつかの重要なアルゴリズムで、使用時にヘッダファイルを含める必要があります.
#include
1sort(a.begin(),a.end()); 
// a   a.begin()(   ) a.end()(    )           2reverse(a.begin(),a.end()); 
// a   a.begin()(   ) a.end()(    )     ,    , a    1,3,2,4,    4,2,3,13copy(a.begin(),a.end(),b.begin()+1);
 // a   a.begin()(   ) a.end()(    )      b , b.begin()+1   (   )    ,       4find(a.begin(),a.end(),10); 
// a   a.begin()(   ) a.end()(    )      10,            

——————————————————著作権声明:本文はCSDNブロガー「qinyuehong」のオリジナル文章であり、CC 4.0 BY-SA著作権協定に従い、原文の出典リンクと本声明を転載してください.テキストリンクhttps://blog.csdn.net/qinyuehong/article/details/92837359