- 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() | リストの先頭に新しい要素を挿入します。 |