C++vector容器文法及び内蔵方法

11597 ワード

C++vector容器
注意:次のvは、初期化されたvectorコンテナを表します.
1.説明
ほとんど配列の代替品と言えるが、配列は静的空間であり、vectorは動的拡張であるが、vectorは一端からしか操作できず、単端配列とも呼ばれる(したがって後に両端配列dequeがある)
  :               (      ,      ):
int a=v[0];
         , []    
int a=v.at(0);

2.初期化
  • 直接声明
  • vector<T> v;
    
  • コピーvector中任意区間
  • vector(v.begin(),v.end());
    
    vector<int> v1;
    vector<int> v;
    v.assign(v1.begin(),v1.end());
    
  • n個のelem初期化
  • vector(n,elem);
    
    vector<int> v;
    v.assign(3,4);
    
  • 別の
  • をコピー
    vector(v);
    
  • 配列回転vector
  • int x[3]={
         1,2,3};
    vector<int> v(x,x+3);
    
  • =
  • vector<int> v2(1,10);
    vector<int> v;
    v=v2;
    

    注意:書き込み関数の戻り値がvectorの場合、次のように直接return配列を返すことができます.
    vector<int> eg(int a,int b)
        {
         
            return {
         a,b};
        }
    

    3.組み込み方法
  • 尾挿し、
  • を返さない
    v.push_back(10);
    
  • 反復器の位置を指定して単一の要素を挿入し、
  • を返さない
    v.insert(v.begin(),10);
    
  • 指定反復器位置挿入10個2、戻り
  • なし
    v.insert(v.begin(),102);
    
  • 末尾削除、
  • を返さない
    v.pop_back();
    
  • 反復位置要素
  • を削除
    v.erase(v.begin());
    
  • 反復区間要素
  • を削除
    v.erase(v.begin(),v.end());
    
  • はすべて空で、
  • に戻ることはありません.
    v.clear();
    
  • は、ヘッダ要素
  • を返す.
    v.front();
    
  • は、末尾要素
  • を返す.
    v.back();
    
  • 判空、bool
  • に戻る
     if(v.empty()){
         
     
     }
    
  • 容器サイズ(容量)
  • v.capacity()
    
  • 要素個数
  • v.size()
    
  • コンテナのサイズを再指定し、長さはデフォルトで0を入力するか、後のパラメータをデフォルトに指定します.短ければ削る.No Return
  • v.resize(10)
    
    v.resize(102)
    
  • 予約スペース
  • v.reverse(100);
    
  • 容器交換
  • v1.swap(v2);
    
     :        ,      vector             ,        
    
    vector<int>(v1).swap()v1;