dequeテンプレートの仕様
| template <class T, class Allocator =allocator<T> > class deque |
dequeのコンストラクタ
| @ explicit deque (const Allocator &a = Allocator()); A explicit deque (size_type num, const T &val = T)), const Allocator&a = Allocator()); B deque (const deque<T, Allocator> &ob); C template <class InIter> deque (InIter start, InIter end, const Allocator &a = Allocator()); |
@空のキューが作成されます。
explicit deque (const Allocator &a = Allocator());
#include <iostream>
#include <deque>
using namespace std;
int main()
{
deque<char *> dchar; // こんな使い方ありかな? 空のキュー
cout << "dcharのサイズ: " << dchar.size() << "\n\n";
return 0;
}
|
実行結果
| dcharのサイズ: 0 |
A値valの要素で構成されたnum個のキューが作成されます。
explicit deque (size_type num, const T &val = T)), const Allocator&a
= Allocator());
#include <iostream>
#include <deque>
using namespace std;
int main()
{
deque<char *> dchar(10, "aaa"); // 文字列aaaという10個の要素で構成されるキュー
cout << "dcharのサイズ: " << dchar.size() << "\n";
for(int i=0; i<dchar.size() ; i++) cout << dchar[i] << " ";
cout << endl;
return 0;
}
|
Bコピーコンストラクタ
deque (const deque<T, Allocator> &ob);
#include <iostream>
#include <deque>
using namespace std;
void Func(deque<char> &ob)
{
int i;
for(i=0; i<ob.size() ; i++) cout << ob[i] << " ";
cout << "\n前方の要素を3個削除\n";
for(i=0; i<3; i++) ob.pop_front();
}
int main()
{
deque<char> dchar;
int i;
for(i=0; i<10; i++) dchar.push_back('a'+i);
Func(dchar);
for(i=0; i<dchar.size() ; i++) cout << dchar[i] << " ";
return 0;
}
|
実行結果
| a b c d e f g h i j d e f g h i j |