logo

C++ リスト

  • list は連続したコンテナですが、vector は不連続なコンテナです。つまり、list は連続したメモリに要素を格納し、vector は不連続なメモリに要素を格納します。
  • ベクトルの途中で挿入や削除を行うと、すべての要素を移動するのに時間がかかるため、非常にコストがかかります。 Linklist はこの問題を解決し、リスト コンテナを使用して実装されます。
  • リストは双方向をサポートしており、挿入および削除操作の効率的な方法を提供します。
  • ベクトルはランダム アクセスをサポートしているのに対し、リスト要素は順番にアクセスされるため、リストではトラバーサルが遅くなります。

リストのテンプレート

 #include #include using namespace std; int main() { list l; } 

整数型の値の空のリストを作成します。

リストはパラメータを使用して初期化することもできます。

 #include #include using namespace std; int main() { list l{1,2,3,4}; } 

リストは 2 つの方法で初期化できます。

 list new_list{1,2,3,4}; or list new_list = {1,2,3,4}; 

C++ リスト関数

リストのメンバー関数は次のとおりです。

方法 説明
入れる() イテレータが指す位置の前に新しい要素を挿入します。
プッシュバック() ベクトルの最後に新しい要素を追加します。
プッシュ_フロント() フロントに新たな要素を加えます。
ポップバック() 最後の要素を削除します。
ポップフロント() 最初の要素を削除します。
空の() リストが空かどうかをチェックします。
サイズ() リスト内に存在する要素の数を見つけます。
max_size() リストの最大サイズを見つけます。
フロント() リストの最初の要素を返します。
戻る() リストの最後の要素を返します。
スワップ() 両方のリストの型が同じである場合、2 つのリストを交換します。
逆行する() リストの要素を反転します。
選別() リストの要素を昇順に並べ替えます。
マージ() 2 つのソートされたリストをマージします。
スプライス() 新しいリストを呼び出し元のリストに挿入します。
個性的() 重複する要素をすべてリストから削除します。
サイズ変更() リストコンテナのサイズを変更します。
割当() 新しい要素をリスト コンテナーに割り当てます。
位置() 指定された位置に新しい要素を挿入します。
emplace_back() ベクトルの末尾に新しい要素を挿入します。
emplace_front() リストの先頭に新しい要素を挿入します。