vector クラス

STL vector クラスは、指定された型の要素を線形の配置に格納し、任意の要素に対する高速なランダム アクセスを可能にするクラス テンプレートです。 vector クラスは、ランダム アクセスのパフォーマンスを重視するシーケンスの場合に推奨されるコンテナーです。 使用すべきシーケンス コンテナーの種類がわからない場合は、ベクターを使用してください。

template < 
   class Type,  
   class Allocator = allocator<Type>  
> 
class vector

パラメーター

  • 種類
    ベクターに格納する要素の型

  • Allocator
    ベクターに対するメモリの割り当てと割り当て解除を行うオブジェクトの型。 この引数は省略可能であり、既定値は std::allocator*<Type>* です。

解説

ベクターでは、シーケンスの末尾での挿入および削除に要する時間が一定です。 ベクターの途中での要素の挿入または削除には、線形時間を要します。 deque クラス コンテナーのパフォーマンスは、シーケンスの先頭と末尾での挿入および削除に関して優れています。 list クラス コンテナーは、シーケンス内の任意の位置での挿入および削除に関して優れています。

ベクターの再割り当てが発生するのは、メンバー関数がベクターに含まれる要素数を現在の記憶域容量を超えて増やす必要がある場合です。 その他の挿入や消去により、シーケンス内のさまざまな記憶域のアドレスが変わることがあります。 そのような場合は常に、シーケンスのうち変更された部分を指す反復子または参照が無効になります。 再割り当てが発生しない場合は、挿入/削除が行われた地点より前の反復子および参照のみ有効のままになります。

vector<bool> クラスは、ブール型の要素のためにクラス テンプレート vector を完全に特殊化したもので、特殊化で使用される基礎となる型のアロケーターを持ちます。

vector<bool> 参照クラスは、入れ子になったクラスで、このクラスのオブジェクトは vector<bool> オブジェクト内の要素 (単一ビット) への参照を提供できます。

メンバー

コンストラクター

ベクター

特定のサイズのベクター、特定の値の要素を持つベクター、特定の allocator を持つベクター、または他のベクターのコピーとして、ベクターを構築します。

Typedef

allocator_type

ベクターが使用する allocator の型。

const_iterator

読み取り専用のランダム アクセス反復子を表す型。

const_pointer

ベクター内の要素への読み取り専用のポインターを表す型。

const_reference

ベクターに格納されている const 要素に対して読み取りおよび const 操作を実行するための参照。

const_reverse_iterator

読み取り専用の逆順反復子。

difference_type

ベクターに含まれる 2 つの要素のアドレスの差を表す型。

iterator

ベクター内の任意の要素を読み取り、または変更できるランダム アクセス反復子を提供する型。

ポインター

ベクター内の要素へのポインターを表す型。

参照

ベクターに格納されている要素への参照を表す型。

reverse_iterator

reverse_iterator を表す型。

size_type

ベクター内の要素の数を表す型。

value_type

ベクター内に格納されているデータ型を表す型。

メンバー関数

assign

指定した要素を新しい要素のコピーで置き換えます。

at

ベクター内の指定位置にある要素への参照を返します。インデックスが 0 未満または size() の値以上の場合は、out_of_range 例外をスローします。

back

ベクターの最後の要素への参照を返します。

begin

ベクター内の最初の要素を示すランダム アクセス反復子を返します。

capacity

追加の記憶域を割り当てずにベクターに収容できる要素の数を返します。

cbegin

ベクター内の最初の要素を示すランダム アクセスの定数反復子を返します。

cend

ベクターの末尾より 1 つ後を指すランダム アクセスの定数反復子を返します。

crbegin

ベクター内の最後の要素への const reverse_iterator を返します。

crend

ベクター内の最初の要素の 1 つ前を指す const reverse_iterator を返します。

clear

ベクターの要素を消去します。

データ

ベクター内の最初の要素へのポインターを返します。

emplace

その場で構築した要素をベクター内の指定位置に挿入します。

emplace_back

その場で構築した要素をベクターの末尾に追加します。

empty

ベクターに何らかの要素が含まれているかどうかを調べます。

End

ベクターの最後の要素の 1 つ後を指すランダム アクセス反復子を返します。

erase

指定した位置からベクター内の要素または要素範囲を削除します。

front

ベクター内の最初の要素への参照を返します。

get_allocator

ベクターで使用する allocator を返します。

insert

ベクター内の指定位置に 1 つまたは複数の要素を挿入します。

max_size

ベクターの最大長を返します。

pop_back

ベクトルの末尾の要素を削除します。

push_back

ベクトルの末尾に要素を追加します。

rbegin

逆順のベクターの最初の要素への反復子を返します。

rend

最初の要素の 1 つ前を指す reverse_iterator を返します。

reserve

ベクター オブジェクトに最小の長さの記憶域を予約します。

resize

ベクターの新しいサイズを指定します。

shrink_to_fit

余分なキャパシティを破棄します。

size

ベクター内の要素の数を返します。

swap

2 つのベクターの要素を交換します。

演算子

operator[]

指定した位置における vector 要素への参照を返します。

operator =

ベクターの要素を、別のベクターのコピーで置き換えます。

必要条件

ヘッダー: <vector>

名前空間: std

参照

関連項目

C++ 標準ライブラリ内のスレッド セーフ

標準テンプレート ライブラリ

その他の技術情報

ベクターのメンバー

<vector> メンバー