名前付き要件:Container
提供: cppreference.com
Container は他のオブジェクトを格納するために使用されるオブジェクトです。 格納するオブジェクトによって使用されるメモリの管理を行います。
目次 |
[編集]要件
- コンテナの型
C
- 要素の型
T
C
型のオブジェクトa
,b
C
型の prvalue 式rv
[編集]型
名前 | 型 | 注釈 |
---|---|---|
value_type | T | Eraseable |
reference | T& | |
const_reference | const T& | |
iterator | T を指すイテレータ | LegacyForwardIteratorconst_iterator に変換可能 |
const_iterator | T を指す const イテレータ | LegacyForwardIterator |
difference_type | 符号付き整数 | iterator および const_iterator に対する iterator_traits::difference_type と同じでなければならない |
size_type | 符号なし整数 | difference_type のすべての正の値を表現するのに十分大きい |
[編集]メンバ関数および操作
式 | 戻り値の型 | 意味論 | 条件 | 計算量 | |
---|---|---|---|---|---|
C() | C | 空のコンテナを作成する | 事後: C().empty() == true | 定数時間 | |
C(a) | C | a のコピーを作成する | 事前: T は CopyInsertable でなければならない 事後: a == C(a) | 線形時間 | |
C(rv)(C++11以上) | C | rv をムーブする | 事後: この構築を行う前の値 rv と等しい | 定数時間[1] | |
a = b | C& | a のすべての要素を破棄または b の要素からコピー代入する | 事後: a == b | 線形時間 | |
a = rv | C& | a のすべての要素を破棄または rv の要素からムーブ代入する | 事後: a がこの代入を行う前の値 rv と等しい | 線形時間 | |
a.~C() | void | a のすべての要素を破棄しすべてのメモリを解放する | 線形時間 | ||
a.begin() | (const_)iterator | a の最初の要素を指すイテレータ | 定数時間 | ||
a.end() | (const_)iterator | a の最後の要素の次を指すイテレータ | 定数時間 | ||
a.cbegin()(C++11以上) | const_iterator | const_cast<const C&>(a).begin() | 定数時間 | ||
a.cend()(C++11以上) | const_iterator | const_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 | a と b の値を交換する | 定数時間[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() | 定数時間 | ||
注釈 | |||||
|
が与えられたとき、式 i == j, i != j, i < j, i <= j, i >= j, i > j, i - j において、意味を変えずに、片方または両方をコンテナの | (C++14以上) |
[編集]コンテナのデータ競合
コンテナのスレッド安全性を参照してください。
[編集]その他の要件
- C
- T