C ++のSTLリストコンテナで
Benpianエッセイ簡単に説明(C ++ STL \)\に\(リスト\)コンテナとヒントを使用します。
リストコンテナの概念
学び\(C ++ STL \)多くの学生が知っている、\(STL \)容器に(標準テンプレートライブラリ)実際に、我々は、アルゴリズムの競争構造に使用されるデータテンプレートの一部です。たとえば、\(キュー\)シミュレーションキュー、\(優先\ _queue \)シミュレートし、ヒープなど。そこで、我々はできる(リスト\)\アナログデータ構造の理解「二重リンクリスト」のテンプレートを。
あなたがここに見ることができれば、基本的な概念やマニュアルアナログ実装の二重リンクリストについて、生徒たちは知りません。
簡単に言えば、リストは任意の二つの要素の挿入をサポートしている配列の最適化された構造で、また一緒にステッチ2つの要素を削除する要素の周りの任意の要素の削除をサポート。
コンテナのステートメントリスト
\(リストは\)容器を宣言し、ほとんどの\(STL \)宣言型の容器には、以下のとおりです。構造的なコンテナ名<変数の型>の名前。あることを言及する価値がある (一覧\)\コンテナを開くために必要な #include<list>
テンプレートライブラリを。
#include<list>
list<int> l;
list<char> l;
list<pair<int,int> > l;
list<node> l;
struct node{...};
コンテナのリストを使用します
他のSTLコンテナの使用と同様に
使い方 | 効果 |
---|---|
l.begin(),l.end() |
最初と最後のリストを返しますイテレータを |
l.front(),l.back() |
最初と最後のリストを返します要素を |
l.push_back() |
リスト要素を挿入した後 |
l.push_front() |
前にリスト要素を挿入します |
l.pop_back() |
リスト内の要素を削除します。 |
l.pop_front() |
リストの前の要素を削除します。 |
l.clear() |
空のリスト |
l.size() |
リスト内の要素の数を返します。 |
l.empty() |
リストが空であるかどうかの判定 |
挿入
以来\(リスト\)の任意の場所に挿入および削除をサポートするので、あなただけを使用する場合、\(プッシュ\ _front()\ ) と\(\ _frontを(ポップ)\ ) メンバ関数のこのタイプではなく、単にそれを失うてみましょう最初のリストの名前。
では\(リスト\) 、我々は使用\(挿入()\)任意の位置にある要素を含めることをサポートするための機能を。原理は1つの位置パラメータがパラメータ値であり、2つのパラメータをアップロードし、非常に簡単です。イテレータをアップロードする際に、この位置パラメータが必要であることに注意してください。このように、挿入後、挿入要素は、イテレータの要素を指します元。
類似:
l.insert(it,val);
削除
二つの方法を削除します:1は、指定された要素を削除することで、一つは指定された場所を削除することです。親密な削除の両方が実際に書くときに発生する可能性のある問題を計画しました。
実際には、非常にシンプルなああ。
あなたが場所にその要素を削除した場合、直接イテレータの位置を渡します。
remove(it);
あなたが特定の値を削除した場合、この値を直接渡します。
remove(val);
それは注意する必要があります。
あなたが値を削除した場合、この値は、現在のリストをすべて削除します。
あなたが場所にその要素を削除した場合は、再割り当て、またはその操作のすべてが、それは間違っている、しない限り、障害からこのイテレータを引き起こします。それが爆発した後、ピットのレベルの前に自分自身を長い時間を残して、キノコの破壊にゾンビのようなものだ(私はもっとそれを退廃されました?)