- unordered_set[meta header]
- std[meta namespace]
- unordered_set[meta class]
- function[meta id-type]
- cpp11[meta cpp]
unordered_set& operator=(const unordered_set& v); // (1)
unordered_set& operator=(unordered_set&& rv); // (2)
unordered_set& operator=(unordered_set&& x)
noexcept(allocator_traits<Allocator>::is_always_equal::value
&& is_nothrow_move_assignable<Hash>::value
&& is_nothrow_move_assignable<Container_move_assign>::value); // (2) C++17
unordered_set& operator=(initializer_list<value_type> il); // (3)
- initializer_list[link /reference/initializer_list/initializer_list.md]
unordered_set
オブジェクトを代入する
-
(1)、および、(3) の形式の場合、以下の条件を満たすこと。
value_type
はこのコンテナに対してコピー挿入可能(CopyInsertable)であること。value_type
はコピー代入可能(CopyAssignable)であること。
-
(2) の形式の場合、
std::
allocator_traits
<allocator_type>::propagate_on_container_move_assignment::value
がfalse
であれば、以下の条件を満たすこと。value_type
はこのコンテナに対してムーブ挿入可能(MoveInsertable)であること。value_type
はムーブ代入可能(MoveAssignable)であること。
-
(1) :
v
の全ての要素がコピー代入される。ハッシュ関数オブジェクト、キー比較用関数オブジェクト、max_load_factor
()
の値もコピーされる。 アロケータオブジェクトは、std::
allocator_traits
<allocator_type>::propagate_on_container_copy_assignment::value
がtrue
の場合に限りコピーされる。 -
(2) : ハッシュ関数オブジェクト、キー比較用関数オブジェクトの値はムーブされる。
max_load_factor
()
の値はコピーされる。 アロケータオブジェクトは、std::
allocator_traits
<allocator_type>::propagate_on_container_move_assignment::value
がtrue
の場合に限りムーブされる。コンテナ内に元々存在していた要素は、代入されるか、破棄される(デストラクタが呼び出される)。 -
(3) : 範囲
[il.begin(), il.end())
がコピー代入される。 コンテナ内に元々存在していた要素は、代入されるか、破棄される(デストラクタが呼び出される)。
以下では構築されたオブジェクトを u
とする。
- (1) :
u == v
。 - (2) :
u == 代入前の rv
。 - (3) : -
*this
- (1) : 平均的には O(n)、ここで、
n = v.
size
()
。最悪のケースでは O(n2) - (2) : 線形時間。
- (3) : 代入対象を
a
、a
の型をX
とすると、a = X(il)
と同様。(備考参照)
- (3) の形式の場合、計算量は
a = X(il)
と同様となっているが、効果がa = X(il)
と同様なわけではない。(ハッシュ関数オブジェクト、キー比較用関数オブジェクト、アロケータオブジェクト、max_load_factor
()
等が異なる)
- C++11
- Clang: -
- Clang: 3.0, 3.1
- GCC: 4.4.7, 4.5.3, 4.6.3, 4.7.0
- ICC: ?
- Visual C++: ?
名前 | 説明 |
---|---|
(constructor) |
コンストラクタ |
(destructor) |
デストラクタ |
- N2679 Initializer Lists for Standard Containers(Revision 1)
- (3)の経緯となる提案文書
- N4258 Cleaning-up noexcept in the Library, Rev 3
noexcept
追加の経緯となる提案文書