File tree 2 files changed +52
-0
lines changed 2 files changed +52
-0
lines changed Original file line number Diff line number Diff line change @@ -16,6 +16,32 @@ namespace std {
16
16
* vector[link /reference/vector/vector.md]
17
17
18
18
## 概要
19
+ `std::flat_multiset`は、重複する要素を許可する連想コンテナの一種であり、要素自身がキーとなる、集合を表すクラスである。
20
+
21
+ `std::flat_multiset`は、ノードベースで実装される[`std::multiset`](/reference/set/multiset.md)、ハッシュテーブルで実装される[`std::unordered_multiset`](/reference/unordered_set/unordered_multiset.md)とは異なり、ソート済み配列と二分探索の組み合わせで実装される。これはほかの実装と比較して、メモリ使用量と列挙速度において優位であり、一方で挿入速度と検索速度はほかの実装に劣る。
22
+
23
+ また、このクラスは分類としては[`std::queue`](/reference/queue/queue.md)や[`std::skack`](/reference/stack/stack.md)と同様のコンテナアダプタに分類され、キーの配列をラップして扱う実装となっている。
24
+
25
+ このコンテナクラスは、ランダムアクセスイテレータをサポートする。
26
+
27
+
28
+ ### ほかの連想コンテナとの要件の違い
29
+ このクラスは要件として、コンテナクラスと、逆順コンテナクラスであることは満たすが、連想コンテナの要件としては以下を満たさない:
30
+
31
+ - node handleに関する要件
32
+ - イテレータ無効化に関する要件
33
+ - 単一要素の挿入と削除に線形時間かかる (挿入位置のイテレータを指定したとしても)
34
+
35
+ また、このコンテナはメモリアロケータを指定できない設計にもなっている。
36
+
37
+ ## テンプレートパラメータ制約
38
+ - `KeyContainer`に指定するコンテナ型は、
39
+ - シーケンスコンテナの要件を満たし、
40
+ - ランダムアクセスイテレータをもつこと
41
+
42
+
43
+ ## 適格要件
44
+ - `Key`が`KeyContainer::value_type`と同じ型であること
19
45
20
46
21
47
## メンバ関数
Original file line number Diff line number Diff line change @@ -16,6 +16,32 @@ namespace std {
16
16
* vector[link /reference/vector/vector.md]
17
17
18
18
## 概要
19
+ `std::flat_set`は、重複しない要素を格納する連想コンテナの一種であり、要素自身がキーとなる、集合を表すクラスである。
20
+
21
+ `std::flat_set`は、ノードベースで実装される[`std::set`](/reference/set/set.md)、ハッシュテーブルで実装される[`std::unordered_set`](/reference/unordered_set/unordered_set.md)とは異なり、ソート済み配列と二分探索の組み合わせで実装される。これはほかの実装と比較して、メモリ使用量と列挙速度において優位であり、一方で挿入速度と検索速度はほかの実装に劣る。
22
+
23
+ また、このクラスは分類としては[`std::queue`](/reference/queue/queue.md)や[`std::skack`](/reference/stack/stack.md)と同様のコンテナアダプタに分類され、キーの配列をラップして扱う実装となっている。
24
+
25
+ このコンテナクラスは、ランダムアクセスイテレータをサポートする。
26
+
27
+
28
+ ### ほかの連想コンテナとの要件の違い
29
+ このクラスは要件として、コンテナクラスと、逆順コンテナクラスであることは満たすが、連想コンテナの要件としては以下を満たさない:
30
+
31
+ - node handleに関する要件
32
+ - イテレータ無効化に関する要件
33
+ - 単一要素の挿入と削除に線形時間かかる (挿入位置のイテレータを指定したとしても)
34
+
35
+ また、このコンテナはメモリアロケータを指定できない設計にもなっている。
36
+
37
+ ## テンプレートパラメータ制約
38
+ - `KeyContainer`に指定するコンテナ型は、
39
+ - シーケンスコンテナの要件を満たし、
40
+ - ランダムアクセスイテレータをもつこと
41
+
42
+
43
+ ## 適格要件
44
+ - `Key`が`KeyContainer::value_type`と同じ型であること
19
45
20
46
21
47
## メンバ関数
You can’t perform that action at this time.
0 commit comments