Vector & List & dequeue


std::vector

  • ダイナミックアレイ(アレイサイズを考慮する必要はない)
  • 内部自動管理ダイナミックメモリ
  • 要素
  • は、
  • アレイと同様の順序で格納される
    vector<int> v;
    vector<int> v(5); * 기본값으로(0) 초기화된 5개의 원소
    vector<int> v(5,2); * 2로 초기화된 5개의 원소

    ベクトルメンバー関数


    反復器(反復器)
    vector<int>::iterator it;
  • v.begin():最初の要素の重複文字位置
  • v.end():最後の要素の後の重複文字位置(NULL)
  • 追加と削除
  • v.push back(element):最後の要素の後ろに要素要素
  • を挿入します.
  • v.pop back()ベクトルの一番後ろの要素
  • を削除
    朝礼
  • v[idx]:idxの2番目の要素
  • を参照
  • v.at(idx):idxの1番目の要素&検査範囲
  • を参照してください.
  • front():最初の要素
  • を返します.
  • back():最後の要素を返します.
    サイズ
  • v.size():戻り要素数
  • v.capacity():割り当てられた空間のサイズを返す&空間割り当ての条件はサイズによって大きくなります
    (容量を既存メモリ*2のサイズに増やす—2、4、8、16...)
  • std::list


    STLを用いる
  • 接続リスト
  • を実現する.
  • 接続リストと同様に、
  • は、中間要素におけるデータの挿入および削除に使用することができる
  • ランダムアクセス時間の複雑度が低い(インデックスアクセス不可)
  • 要素を追加/削除すると、O(1)の速度が非常に速くなります.
    重複文字は1つのスペースしか移動できません(重複文字演算は限られています)
    反復器(反復器)
    list<int>::iterator it;
  • li.begin():最初の要素の重複文字位置
  • li.end():最後の要素の後の重複文字位置(NULL)
  • 追加と削除
  • li.push front(element):listの先頭に要素要素
  • を挿入する
  • li.Pop front():ベクトルの一番前の要素
  • を削除
  • li.Push back(element):最後の要素の後に要素要素要素
  • を挿入する
  • li.Pop back():ベクトルの一番後ろの要素
  • を削除します.
  • insert(iterator,element):iteratorが指す「前」セクション
  • に要素を追加します.
  • erase(iterator):iteratorが指す要素
  • を削除します.
    朝礼
  • front():最初の要素
  • を返します.
  • back():最後の要素
  • を返します.
    	list<int> L = {1,2};
        list<int>::iterator t = L.begin();
        L.push_front(10); // 10 1 2
        cout << *t << '\n';
        L.push_back(5); // 10 1 2 5
        L.insert(t, 6); // 10 6 1 2 5
        t++;
        t = L.erase(t); // t가 가리키는 값을 제거, 그 다음 원소인 5의 위치를 반환
                        // 10 6 1 2 5, t가 가리키는 값은 5

    std:deque

  • 2キューのデータ構造(アレイベースの構造)
  • スタックとキュー(FIFOとLIFOの両方)
  • listでDequeの役割を果たすことができる
  • deque dq;
    deque dq(10); * 기본값으로(0) 초기화된 10개의 원소를 가진 dq를 생성
    deque dq(10, 4); * 4의 값으로 초기화된 10개의 원소를 가진 dq를 생성
    dequeメンバー関数
  • deque容量メンバー関数がない
  • 反復器(反復器)
    deque<int>::iterator it;
  • dq.begin():最初の要素の重複文字位置
  • dq.end():最後の要素の後の重複文字位置(NULL)
  • 追加と削除
  • dq[idx]:idxの2番目の要素
  • を参照
  • dq.at(idx):idxの1番目の要素&検査範囲
  • を参照してください.
  • front():最初の要素
  • を返します.
  • back():最後の要素
  • を返します.