Dequeコンテナの紹介

10726 ワード

Dequeの概要
deque:['dek]
  • deque(double-ended-queue)もSTLの容器であり、dequeは両端配列であり、vectorは単端動的配列である.
  • dequeのインタフェースはvectorと類似しており、多くの操作で直接置き換えることができる.
  • dequeは要素にランダムにアクセスでき、インデックス値の直接アクセスをサポートし、[]オペレータまたはat()メソッドを使用する.
  • dequeヘッダとテールに要素を追加または削除するのは非常に速く、中部で要素を挿入または削除するのに時間がかかる.

  • ヘッダファイル:
    #include
    

    dequeコンストラクタ
    機能
    deque();
    デフォルトコンストラクタ
    deque(n,elem);
    パラメトリックコンストラクタ
    deque(const vector&vec);
    コピーコンストラクタ
    deque(deque_iterator_begin,deque_iterator_end);
    反復コピー構造
    Dequeオブジェクトのデフォルトコンストラクション関数
    dequeはテンプレートクラスで実装され、dequeオブジェクトはデフォルトで構築されます.
    deque<T>deqT;
    //  int deque  
    deque<int>deqInt;
    //  float deque  
    deque<float>deqFloat;
    //  string deque  
    deque<string>deqString;
    //                 
    

    Dequeオブジェクトのパラメトリック構造
    //     [begin,end)           ,       
    deque<int> deq1,deq2;
    deq1(10);
    deq2(deq1.begin(),deq1.end());
    //     n elem     
    deque(n,elem);
    //      
    deque(const deque &deq);
    

    dequeの最後の追加削除操作
    //           
    deque.push_back(elem);
    //           
    deque.push_front(elem);
    //          
    deque.pop_back();
    //          
    deque.pop_front();
    

    dequeのデータアクセス
    //    idx     ,  idx  ,  out_of_range
    deque.at(idx);
    //    idx     , idx  ,     ,    
    deque[idx];
    //       
    deque.front();
    //        
    deque.back();
    

    dequeと反復器
    //              
    deque.begin();
    //               
    deque.end();
    //                
    deque.rbegin();
    //                   
    deque.rend();
    
    
    ## deque   
    
    ```cpp
    // [begin,end)             ,      
    deque.assign(begin,end);
    // n elem       
    deque.assign(n,elem);
    //       
    deque& operator=(const deque &deq);
    // vec        
    deque.swap(deq);
    

    dequeのサイズ
    //          
    deque.size();
    //        
    deque.empty();
    //          num,     ,          ,     ,               
    deque.resize(num);
    //          num,     ,  elem      ,     ,               
    deque.resize(num,elem);
    

    dequeの挿入
    // pos      elem     ,        
    deque.insert(pos.elem);
    // pos    n elem  ,    
    deque.insert(pos,n,elem);
    // pos    [begin,end)    ,    
    deque.insert(pos,begin,end);
    // :
    deque<int>deq1,deq2;
    deq2.insert(pos,deq1.begin(),deq1.end());
    
    

    dequeの削除
    //         
    deque.clear();
    //  [begin,end)     ,          
    deque.erase(begin,end);
    //  pos     ,          
    deque.erase(pos);