名前空間
変種
操作

名前付き要件:Container

提供: cppreference.com
< cpp‎ | named req
 
 
 

Container は他のオブジェクトを格納するために使用されるオブジェクトです。 格納するオブジェクトによって使用されるメモリの管理を行います。

目次

[編集]要件

  • コンテナの型 C
  • 要素の型 T
  • C 型のオブジェクト a, b
  • C 型の prvalue 式 rv

[編集]

名前注釈
value_typeTEraseable
referenceT&
const_referenceconst T&
iteratorT を指すイテレータLegacyForwardIterator
const_iterator に変換可能
const_iteratorT を指す const イテレータLegacyForwardIterator
difference_type符号付き整数 iterator および const_iterator に対する iterator_traits::difference_type と同じでなければならない
size_type符号なし整数difference_type のすべての正の値を表現するのに十分大きい

[編集]メンバ関数および操作

戻り値の型意味論条件計算量
C()C空のコンテナを作成する 事後: C().empty() == true定数時間
C(a)Ca のコピーを作成する事前: T は CopyInsertable でなければならない
事後: a == C(a)
線形時間
C(rv)(C++11以上)Crv をムーブする事後: この構築を行う前の値 rv と等しい定数時間[1]
a = bC&a のすべての要素を破棄または b の要素からコピー代入する事後: a == b線形時間
a = rvC&a のすべての要素を破棄または rv の要素からムーブ代入する事後: a がこの代入を行う前の値 rv と等しい線形時間
a.~C()voida のすべての要素を破棄しすべてのメモリを解放する線形時間
a.begin()(const_)iteratora の最初の要素を指すイテレータ定数時間
a.end()(const_)iteratora の最後の要素の次を指すイテレータ定数時間
a.cbegin()(C++11以上)const_iteratorconst_cast<const C&>(a).begin()定数時間
a.cend()(C++11以上)const_iteratorconst_cast<const C&>(a).end()定数時間
a == b bool に変換可能 std::equal(a.begin(), a.end(), b.begin(), b.end())(C++14以上)事前: T は EqualityComparable でなければならない a.size() != b.size() の場合は定数時間[2]、そうでなければ線形時間
a != b bool に変換可能 !(a == b) 線形時間
a.swap(b) void ab の値を交換する 定数時間[1][3]
swap(a, b) void a.swap(b) 定数時間[1]
a.size() size_type distance(a.begin(), a.end()) 定数時間[3]
a.max_size() size_type b.size()、ただし b は有り得る最も大きなコンテナ 定数時間[3]
a.empty() bool に変換可能 a.begin()== a.end() 定数時間
注釈
  1. 1.01.11.2std::array の場合は線形時間
  2. std::forward_list の場合は常に線形時間です。
  3. 3.03.13.2(C++11未満)厳密な定数時間ではありません。
  • コンテナの iterator 型のオブジェクト i, j

が与えられたとき、式 i == j, i != j, i < j, i <= j, i >= j, i > j, i - j において、意味を変えずに、片方または両方をコンテナの const_iterator 型の同じ要素を参照するオブジェクトに置き換えることができます。

(C++14以上)

[編集]コンテナのデータ競合

コンテナのスレッド安全性を参照してください。

[編集]その他の要件

C
T
close