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