[C++]STL-リスト(List)


リストとは?



  • シーケンスコンテナ(sequence container)は、順序を保持する構造である.

  • ノードベースコンテナ

  • 二重接続リスト(二重リンクリスト)

  • vectorおよびdequeとは異なり、メンバー関数は정렬(sort, merge)および이어붙이기(splice)である.

  • 元素探索の際には、임의접근 반복자(at()[])を用いることは不可能であり、양방향 반복자(++--)を用いて探索を行う.

  • メンバー関数を使用してlistの両端に挿入または削除できます.

  • メンバー関数を使用すると、ノード間での挿入または削除が可能になります.
  • 2.宣言

  • ヘッダファイル
  • #include <list>
  • list宣言list<[Data Type] > [변수 이름];
  • list<int> lt1;
    list<string> lt2;

    3.リストメンバー関数


    front


    一番前の要素を返します.
    li.front()

    back


    一番後ろの要素を返します.
    li.back()

    begin


    一番前の要素を指す反復器を返します.
    li.begin()

    end


    最後の要素を指す反復器を返します
    li.end()

    rbegin


    後から順にアクセスする場合に使用
    ひっくり返したときの最初の.
    li.rbegin()

    rend


    後から順にアクセスする場合に使用
    ひっくり返した時最後.
    li.rend()

    push_back


    末尾で要素を挿入
    li.push_back(k)

    push_front


    エレメントをヘッダーで挿入
    li.push_front(k)

    pop_back


    最後の要素を削除
    li.pop_back()

    pop_front


    一番前の要素を削除
    li.pop_front()

    insert

    iterが指す位置に要素を挿入
    挿入要素を指す反復器を返します
    挿入後、残りの部分を後ろにプッシュ(左側に挿入)
    li.insert(iter,k)

    erase

    iterが指す要素を削除
    削除した要素の次の要素を指す反復器を返します.
    li.erase(iter)

    size


    戻り要素数
    li.size()

    remove


    kなどのすべての要素を削除
    li.remove(k)

    remove_if


    単項条件者predicateすべての要素を削除
    li.remove_if(predicate)

    reverse


    要素のシーケンスを反転
    li.reverse()

    sort


    昇順(default)ですべての要素をソート
    パラメータによるソートとパラメータによるソート
    (linked list setSortRuleと同じ)
    li.sort()

    swap

    li1およびli2
    li2.swap(li1)

    splice

    li2からiter2で指す場所li1の要素をすべて切り取ります.
    li2.splice(iter2,li1)
    li2.splice(iter2,li1,iter1)

    unique


    隣接する要素が同じ場合は、タッチのみ(繰り返し削除)
    li.unique()

    merge

    li1li2の内部に統合
    昇順
    2番目のパラメータでソート基準を取得できます
    li2.merge(li1)

    💡 注意:配置


    C++ STL - linked list
    [C++]listコンテナのクリーンアップと使用方法