C ++ライブラリ-<ベクター>
前書き
ベクトルは、サイズを変更できるシーケンスコンテナです。コンテナは、同じタイプのデータを保持するオブジェクトです。シーケンスコンテナは、要素を厳密に線形シーケンスで格納します。
ベクターは要素を連続したメモリ位置に格納し、添え字演算子[]を使用して任意の要素に直接アクセスできるようにします。配列とは異なり、ベクトルは実行時に必要に応じて縮小または拡大できます。ベクトルの保存は自動的に処理されます。
実行時の縮小および拡張機能をサポートするために、ベクターコンテナーは、可能な拡張に対応するために追加のストレージを割り当てる場合があります。したがって、コンテナーの実際の容量はサイズよりも大きくなります。したがって、配列と比較して、ベクトルはストレージを管理し、効率的な方法で動的に拡張する機能と引き換えに、より多くのメモリを消費します。
ゼロサイズのベクトルも有効です。その場合、vector.begin()とvector.end()は同じ場所を指します。ただし、front()またはback()を呼び出す動作は定義されていません。
定義
以下は、<vector>ヘッダーファイルからのstd :: vectorの定義です。
template < class T, class Alloc = allocator<T> > class vector;
パラメーター
T −含まれている要素のタイプ。
Tは、ユーザー定義型を含む他のデータ型に置き換えることができます。
Alloc −アロケータオブジェクトのタイプ。
デフォルトでは、アロケータクラステンプレートが使用されます。これは、最も単純なメモリ割り当てモデルを定義し、値に依存しません。
メンバータイプ
以下のメンバータイプは、パラメーターとして使用したり、メンバー関数によってタイプを返すことができます。
シニア番号 | メンバータイプ | 定義 |
---|---|---|
1 | value_type | T(テンプレートの最初のパラメーター) |
2 | allocator_type | Alloc(テンプレートの2番目のパラメーター) |
3 | 参照 | value_type& |
4 | const_reference | const value_type& |
5 | ポインター | value_type * |
6 | const_pointer | const value_type * |
7 | イテレータ | value_typeへのランダムアクセスイテレータ |
8 | const_iterator | constvalue_typeへのランダムアクセスイテレータ |
9 | reverse_iterator | std :: reverse_iterator <イテレータ> |
10 | const_reverse_iterator | std :: reverse_iterator <const_iterator> |
11 | size_type | size_t |
12 | Difference_type | ptrdiff_t |
<vector>からの関数
以下は、<vector>ヘッダーのすべてのメソッドのリストです。
コンストラクター
シニア番号 | 方法と説明 |
---|---|
1 | vector :: vector デフォルトコンストラクタ 要素がゼロの空のコンテナを作成します。 |
2 | vector :: vector 塗りつぶしコンストラクター n個の要素を持ち、各要素にvalを割り当てたコンテナーを作成します。 |
3 | vector :: vector 範囲コンストラクター 最初から最後までの範囲の要素をいくつでも含むコンテナを構築します。 |
4 | vector :: vector コピーコンストラクタ 既存のコンテナxに存在する各要素のコピーを使用してコンテナを構築します。 |
5 | vector :: vectormove コンストラクター 移動セマンティクスを使用して、他のコンテンツでコンテナを構築します。 |
6 | vector :: vector 初期化子リストコンストラクター イニシャライザリストからコンテナを構築します。 |
デストラクタ
シニア番号 | 方法と説明 |
---|---|
1 | vector :: 〜vector
コンテナのメモリの割り当てを解除して、コンテナを破棄します。 |
メンバー関数
シニア番号 | 方法と説明 |
---|---|
1 | vector :: assign 塗りつぶしバージョン 古い値を置き換えることにより、ベクトル要素に新しい値を割り当てます。 |
2 | vector :: assign 範囲バージョン 古い値を置き換えることにより、ベクトル要素に新しい値を割り当てます。 |
3 | vector :: assign イニシャライザリストバージョン 古い値を置き換えることにより、ベクトル要素に新しい値を割り当てます。 |
4 | vector :: at
ベクトルの位置nに存在する要素への参照を返します。 |
5 | vector :: back
ベクトルの最後の要素への参照を返します。 |
6 | vector :: begin
ベクトルの最初の要素を指すランダムアクセスイテレータを返します。 |
7 | ベクトル::容量
要素で表された、割り当てストレージのサイズを返します。 |
8 | vector :: cbegin
ベクトルの先頭を指す定数ランダムアクセスイテレータを返します。 |
9 | vector :: cend
ベクトルの先頭を指す定数ランダムアクセスイテレータを返します。 |
10 | vector :: clear
ベクトルからすべての要素を削除してベクトルを破棄し、ベクトルのサイズをゼロに設定します。 |
11 | vector :: crbegin
コンテナのリバーサーの先頭を指す定数リバースイテレータを返します。 |
12 | vector :: crend
ベクトルの逆端を指す定数逆イテレータを返します。 |
13 | vector :: data
ベクトルコンテナの最初の要素へのポインタを返します。 |
14 | vector :: emplace
位置に新しい要素を挿入してコンテナを拡張します。 |
15 | vector :: emplace_back
ベクトルの最後に新しい要素を挿入します。 |
16 | vector :: empty
ベクトルが空かどうかをテストします。 |
17 | vector :: end
ベクトルコンテナ内の最後を過ぎた要素を指すイテレータを返します。 |
18 | vector :: erasepositionバージョン ベクトルから単一の要素を削除します。 |
19 | vector :: erase範囲バージョン ベクトルから単一の要素を削除します。 |
20 | vector :: front
ベクトルの最初の要素への参照を返します。 |
21 | vector :: get_allocator
ベクトルに関連付けられたアロケータを返します。 |
22 | vector :: insert 単一要素バージョン 位置に新しい要素を挿入することにより、イテレータを拡張します。 |
23 | vector :: insertfillバージョン コンテナに新しい要素を挿入してベクトルを拡張します。 |
24 | vector :: insert 範囲バージョン コンテナに新しい要素を挿入してベクトルを拡張します。 |
25 | vector :: insert 移動バージョン コンテナに新しい要素を挿入してベクトルを拡張します。 |
26 | vector :: insert イニシャライザリストバージョン コンテナに新しい要素を挿入してベクトルを拡張します。 |
27 | vector :: max_size
ベクトルが保持できる要素の最大数を返します。 |
28 | vector :: operator = コピーバージョン 古いコンテンツを置き換えて新しいコンテンツをベクターに割り当て、必要に応じてサイズを変更します。 |
29 | vector :: operator = 移動バージョン 古いコンテンツを置き換えて新しいコンテンツをベクターに割り当て、必要に応じてサイズを変更します。 |
30 | vector :: operator = 初期化子リストのバージョン 古いコンテンツを置き換えて新しいコンテンツをベクターに割り当て、必要に応じてサイズを変更します。 |
31 | vector :: operator []
位置nに存在する要素への参照を返します。 |
32 | vector :: pop_back
ベクトルから最後の要素を削除し、ベクトルのサイズを1つ減らします。 |
33 | vector :: push_back
ベクトルの最後に新しい要素を挿入し、ベクトルのサイズを1つ増やします。 |
34 | vector :: rbegin
ベクトルの最後の要素を指す逆イテレータを返します。 |
35 | vector :: rend
ベクトルの逆端を指す逆イテレータを返します。 |
36 | vector :: reserved
ベクトル容量を予約する要求は、少なくともn個の要素を含むのに十分です。 |
37 | ベクトル::サイズ変更
ベクトルのサイズを変更します。 |
38 | vector :: shrink_to_fit
サイズに合わせて容量を減らすようにコンテナに要求します。 |
39 | vector :: size
ベクトルに存在する要素の数を返します。 |
40 | vector :: swap
ベクトルの内容をベクトルxの内容と交換します。 |
非メンバーのオーバーロードされた関数
シニア番号 | 方法と説明 |
---|---|
1 | 演算子==
2つのベクトルが等しいかどうかをテストします。 |
2 | 演算子!=
2つのベクトルが等しいかどうかをテストします。 |
3 | 演算子<
最初のベクトルが他のベクトルよりも小さいかどうかをテストします。 |
4 | 演算子<=
最初のベクトルが他のベクトル以下であるかどうかをテストします。 |
5 | 演算子>
最初のベクトルが他のベクトルよりも大きいかどうかをテストします。 |
6 | 演算子> =
最初のベクトルが他のベクトル以上であるかどうかをテストします。 |
7 | スワップ
2つのベクトルの内容を交換します。 |