C++標準テンプレートライブラリSTLでのvectorの使い方紹介

3374 ワード

本明細書で説明するstd::vectorの使用法はC++11に基づいており、std::vectorはヘッダファイルに定義され、その定義は以下の通りである.
template<
    class T,
    class Allocator = std::allocator
> class vector;

メンバー・タイプを含むメンバー関数は、次のとおりです.
メンバーのタイプ
メンバーのタイプ
定義#テイギ#
value_type
T
allocator_type
Allocator
size_type
符号なし整数タイプ(通常std::size_t)
difference_type
符号付き整数タイプ(通常std::ptrdift)
reference
value_type&
const_reference
const value_type&
pointer
std::allocator_traits::pointer
const_pointer
std::allocator_traits::const_pointer
iterator
ランダムアクセス反復器(RandomAccessIterator)
const_iterator
ノーマルランダムアクセス反復器
reverse_iterator
std::reverse_iterator
const_reverse_iterator
std::reverse_iterator
メンバー関数
メンバー関数
さぎょう
(コンストラクタ)
構造vector(解析関数)
アッセイvectoroperator=
コンテナに値を割り当てる
assign(size_type count, const T& value)assign(InputIt first, InputIt last)assign(std::initializer_list ilist)
コンテナの内容を置換
get_allocator()
関連するディスペンサを返す
1、要素アクセス
at(size_type pos)
指定した要素にアクセスし、境界チェックを行います.posがコンテナの範囲内でない場合、std::out_を放出します.of_rangeタイプの異常
operator[]
指定した要素へのアクセス
front()
最初の要素へのアクセス
back()
最後の要素へのアクセス
data()
メモリ内の配列の最初の要素を指すポインタを返します.
2、反復器
begin()cbegin()
コンテナの最初の要素を指す反復器を返します.
end()cend()
コンテナの終端を指す反復器を返します
rbegin()crbegin()
コンテナの最後の要素を指す逆反復器を返します.
rend()crend()
コンテナの先端を指す逆反復器を返します
3、容量
empty()
コンテナが空で、要素数が0の場合はtrueを返します.そうでない場合はfalseを返します.
size()
格納されている要素の数を返します.
max_size()
収容可能な最大要素数を返し、コンテナがこの最大値に拡張されると自動的に増大することはできません.
reserve(size_type n)
記憶領域を予約し、n値が元の記憶領域より大きくなってこそ、空間を再割り当てできますが、最大値
capacity()
現在のストレージ領域に収容できる要素の数を返します.
shrink_to_fit()
未使用のメモリを解放するのは、capacity()からsize()への非強制的な要求を減らすことです.要求が達成されたかどうかは、再割り当てが発生した場合、後続の反復器を含むすべての反復器と、要素への参照が不正化されることに依存します.
4、モディファイヤ
clear()
コンテンツのクリア
insert(const_iterator pos, const T& value)insert(const_iterator pos, T&& value)insert(const_iterator pos, size_type count, const T& value)insert(const_iterator pos, InputIt first, InputIt last)insert(const_iterator pos, std::initializer_list ilist)
要素の挿入
emplace(const_iterator pos, Args&&... args) posの前に直接要素を容器に挿入し、パラメータargs...
erase(iterator pos)erase(iterator first, iterator last)
エレメントまたはシーケンスの消去
push_back(const T& x)
コンテナの最後に要素xを追加
emplace_back(Args&&... args)
コンテナの最後に要素をその場で構築
pop_back()
末尾要素の除去
resize(size_type sz, T c = T())
コンテナに格納可能な要素の数を変更再割り当てされた要素の数が元の数より小さい場合、カットオフシーケンスが元の数より大きい場合、後の値はcの値で、デフォルトは0です.
swap(vector& other)
コンテンツの交換
5、非メンバー関数
operator==operator!=operatoroperator>=
辞書の順序でvectorの値を比較する