トップ-> C++入門:7章 STL-> deque

←前ページへ :  トップへ :  次ページへ→

10. deque


  dequeはすでに説明したように、コンテナの両端への追加および削除が頻繁に行われる 操作に向いています。また、ランダムアクセスも可能で、定数時間でアクセス可能です。

パフォーマンス
作業内容 処理速度
末端要素の追加 定数時間(要素数によらない)
末端要素の削除 定数時間(要素数によらない)
中間要素の追加 線形時間(要素数に比例)
中間要素の削除 線形時間(要素数に比例)
ランダムアクセス 定数時間(要素数によらない)

dequeクラスの主要な関数
関数名 書 式 説 明
begin iterator begin() 先頭を表わすイタレーターを返します
end iterator begin() 末尾を表わすイタレーターを返します
末尾とは最後の要素の次を表わします
rbegin reverse_iterator rbegin() 末尾を表わす逆方向イタレーターを返します
末尾とは最後の要素の次を表わします
rend reverse_iterator rend() 先頭を表わす逆方向イタレーターを返します
empty bool empty() const queueの要素が0なら「true」を、カラでなければ「false」を返します
size size_type size() 要素数を返します
push_back void push_back( const T &value ) dequeの末尾にデータを追加します
push_front void push_front( const T &value ) dequeの先頭にデータを追加します
pop_back void pop_back() dequeの末尾の要素を削除します
pop_front void pop_front() dequeの先頭の要素を削除します
insert iterator insert( iterator itr, const T &value ) itrの直前にvalueを挿入します
insert iterator insert( iterator itr, size_t num, const T &value ) itrの直前にvaluenum個挿入します
insert iterator insert( iterator itr, const_iterator first, const_iterator last ) itrの直前にfirstからlastの間のデータをコピーして挿入します
erase iterator erase( iterator itr ) itrの示す要素を削除します
erase iterator erase( iterator start, iterator end ) startからendまでの要素を削除します
clear void clear() すべての要素を削除します
front reference front() queueの先端の要素を返します
back reference back() queueの末端の要素を返します
at reference at( size_type pos ) pos番目の要素を返します
operator[] reference operator[]( size_type pos ) pos番目の要素を返します
(できるだけ「at」を使用することをお薦めします)
assign void assign( const iterator first, const iterator last ) deque(自分自身)の内容をfirstからlastに置き換えます
assign void assign( size_type n, const T& x = T() ) deque(自分自身)の内容をn個のxに置き換えます
swap void swap( deque x ) deque(自分自身)の内容をxと交換します

コンストラクタ
書 式 説 明
deque(const A& al = A())
例) deque<int> dq1;

dequeを作成しdq1とする
deque(size_type n, const T& v = T(), const A& al = A())
例) deque<int> dq2(5);
n個のvからなるdequeを作成とする
要素数5のint型dequeを作成しdq2とする
deque(const deque& x)
例) deque<int> dq3(dq1);

dq1の複製を作成し、dq3とする
deque(const iterator first, const iterator last, const A& al = A())
例) deque<int> dq4(first, last);

firstからlastまでの要素のコピーを持つdequeを作成し、dq4とする

  dequeは、listとvectorのメンバー関数を備えたコンテナです。

  dequeでは、両端の要素の削除を行う場合は、削除された要素を指すイタレーターのみが 無効になります。しかし、要素の追加または、末端以外の削除を行うと、それまでの全ての イタレーターが無効になります。

  次のページでは実際に使ってみます。


←前ページへ :  トップへ :  次ページへ→