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 |