名前空間
変種
操作

名前付き要件: Container

提供: cppreference.com
< cpp‎ | named req
 
 
名前付き要件
基本
型の性質
ライブラリ全体
コンテナ
コンテナの要素
イテレータ
ストリーム入出力
乱数
並行処理
(C++11)

(C++11)
(C++11)
その他
 

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

目次

[編集] 要件

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

[編集]

名前 注釈
value_type T Eraseable
reference T&
const_reference const T&
iterator T を指すイテレータ LegacyForwardIterator
const_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 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.0 1.1 1.2 std::array の場合は線形時間
  2. std::forward_list の場合は常に線形時間です。
  3. 3.0 3.1 3.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