queコンテナは、データを最後に追加し、最初から取得しました。これに対してdequeコンテナは、データを先頭と末尾の両方に追加・削除ができます。また、中間のデータを読んだり、中間のデータの挿入・削除ができます。queコンテナは、反復子が使えませんでしたが、dequeでは使用できます。また、逆方向反復子も使用できます。
push_back()メンバ関数はデータを末尾に追加します。 push_front()メンバ関数はデータを先頭に追加します。 pop_back()メンバ関数は末尾のデータを削除します。 pop_front()メンバ関数は先頭のデータを削除します。 insert()メンバ関数でデータを任意の位置に挿入します。では、簡単な例を見てみましょう。
// deque01.cpp
#include <iostream>
#include <deque>
using namespace std;
int main()
{
deque<int> dq;
deque<int>::iterator p;
deque<int>::reverse_iterator r;
int i, n;
while (1) {
cout << "整数値を入力(0で終了)---";
cin >> n;
if (n == 0)
break;
dq.push_back(n);
}
cout << "入力順表示" << endl;
for (p = dq.begin(); p != dq.end(); p++)
cout << *p << endl;
cout << "逆順表示" << endl;
for (r = dq.rbegin(); r != dq.rend(); r++)
cout << *r << endl;
cout << "添え字で表示" << endl;
for (i = 0; i < (int)dq.size(); i++)
cout << "dq[" << i << "] = " << dq[i] << endl;
return 0;
}
では、実行結果を見てみましょう。
入力順に表示したり、逆順に表示できます。添え字で表すこともできますね。
今回も簡単でした。
Update Sep/21/2004 By Y.Kumei