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

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

5. vector


  では、最初に一番簡単なvectorコンテナについて説明します。

  vectorはすでに説明したように、動的な配列ですので、ランダムアクセスに適していますが、 要素の追加、削除を頻繁に行うような場合には適しません。

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

vectorクラスの主要な関数
関数名 書 式 説 明
begin iterator begin() 先頭を表わすイタレーターを返します
end iterator end() 末尾を表わすイタレーターを返します
末尾とは最後の要素の次を表わします
rbegin reverse_iterator rbegin() 末尾を表わす逆方向イタレーターを返します
末尾とは最後の要素の次を表わします
rend reverse_iterator rend() 先頭を表わす逆方向イタレーターを返します
empty bool empty() vectorの要素が0なら「true」を、カラでなければ「false」を返します
size int size() 要素数を返します
push_back void push_back( const T &value ) vectorの末尾にデータを追加します
pop_back void pop_back() vectorの末尾の要素を削除します
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() vectorの先端の要素を返します
back reference back() vectorの末尾の要素を返します
at reference at( size_type pos ) pos番目の要素を返します
operator[] reference operator[]( size_type pos ) pos番目の要素を返します
(できるだけ「at」を使用することをお薦めします)
assign void assign( const iterator first, const iterator last ) vector(自分自身)の内容をfirstからlastに置き換えます
assign void assign( size_type n, const T& x = T() ) vector(自分自身)の内容をn個のxに置き換えます
swap void swap( vector x ) vector(自分自身)の内容をxと交換します

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

長さ0のint型のvectorを作る
vector(size_type n, const T& v = T(), const A& al = A() )
例) vector<int> vect2(20)

長さ20のint型vectorを作る
vector(const vector& x )
例) vector<int> vect3(10, 100);

長さ10のint型vectorを作り、すべての要素を100で初期化する
vector(const_iterator first, const_iterator last, const A& al = A() )
例) vector<int> vect4(vect1);

vect1をコピーし、vect4とする
  いきなり、たくさんの関数が出てきたため、やる気がなくなったかもしれませんが、整理して覚えると そんなに難しくはありません。

  vectorは要素の追加や削除が行われた場合、新しく領域が確保されるため、それまでに使用していた イタレーターや参照は使用できなくなります。

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


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