Skip to content

Commit

Permalink
<flat_map>のヘッダページを追加 #1078
Browse files Browse the repository at this point in the history
  • Loading branch information
faithandbrave committed Mar 10, 2023
1 parent 985d49c commit d9d21a6
Show file tree
Hide file tree
Showing 3 changed files with 34 additions and 2 deletions.
2 changes: 1 addition & 1 deletion lang/cpp23.md
Expand Up @@ -118,7 +118,7 @@ C++23とは、2023年中に改訂される予定の、C++バージョンの通
- 外部から提供されるメモリバッファでストリーム処理を行うライブラリとして[`<spanstream>`](/reference/spanstream.md.nolink)を追加
- 正常値とエラー値のどちらかを持つクラスおよびライブラリとして[`<expected>`](/reference/expected.md)を追加
- 多次元配列ビューのライブラリとして[`<mdspan>`](/reference/mdspan.md.nolink)を追加
- ノードベースではないソート済みキーによる順序付き連想コンテナのライブラリとして、[`<flat_map>`](/reference/flat_map.md.nolink)[`<flat_set>`](/reference/flat_set.md.nolink)を追加
- ノードベースではないソート済みキーによる順序付き連想コンテナのライブラリとして、[`<flat_map>`](/reference/flat_map.md)[`<flat_set>`](/reference/flat_set.md.nolink)を追加
- 書式指定で出力するライブラリとして[`<print>`](/reference/print.md)を追加
- コルーチンによるRangeの生成をサポートする[`<generator>`](/reference/generator.md)を追加
- 拡張浮動小数点数のライブラリとして[`<stdfloat>`](/reference/stdfloat.md)を追加
Expand Down
2 changes: 1 addition & 1 deletion reference.md
Expand Up @@ -107,7 +107,7 @@
| [`<vector>`](/reference/vector.md) | ベクタ配列 | |
| [`<map>`](/reference/map.md) | 順序付き連想配列 | |
| [`<set>`](/reference/set.md) | 順序付き集合 | |
| [`<flat_map>`](/reference/flat_map.md.nolink) | ソート済みキーによる順序付き連想配列 | C++23 |
| [`<flat_map>`](/reference/flat_map.md) | ソート済みキーによる順序付き連想配列 | C++23 |
| [`<flat_set>`](/reference/flat_set.md.nolink) | ソート済みキーによる順序付き集合 | C++23 |
| [`<unordered_map>`](/reference/unordered_map.md) | 非順序連想配列 | C++11 |
| [`<unordered_set>`](/reference/unordered_set.md) | 非順序集合 | C++11 |
Expand Down
32 changes: 32 additions & 0 deletions reference/flat_map.md
@@ -0,0 +1,32 @@
# flat_map
* flat_map[meta header]
* cpp23[meta cpp]

`<flat_map>` ヘッダは、ソート済みキーによる順序付き連想配列を定義する。

[`std::map`](/reference/map/map.md)と違ってノードベースの実装ではなく、メモリ連続性のある配列で扱われる (flat=平坦)。

`<flat_map>` ヘッダでは、キーの重複を許さない `std::`[`flat_map`](flat_map/flat_map.md.nolink) クラステンプレート、およびキーの重複を許す `std::`[`flat_multimap`](flat_map/flat_multimap.md.nolink) クラステンプレートを提供する。

このヘッダでは、以下の標準ヘッダをインクルードする:

- [`<initializer_list>`](initializer_list.md)
- [`<compare>`](compare.md)


| 名前 | 説明 | 対応バージョン |
|----------------------------------------------|--------------------------------------------------------|-------|
| [`flat_map`](flat_map/flat_map.md.nolink) | キーの重複を許さない平坦な順序付き連想コンテナ(class template) | C++23 |
| [`flat_multimap`](flat_map/flat_multimap.md.nolink) | キーの重複を許す平坦な順序付き連想コンテナ(class template) | C++23 |


## バージョン
### 言語
- C++23


## 参照
- [P0429R3 A Standard `flat_map`](https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0429r3.pdf)
- C++23で`flat_map`が導入された経緯・動機・設計について記載されている
- [P0429R9 A Standard `flat_map`](https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p0429r9.pdf)
- C++23で導入された`flat_map`の仕様

0 comments on commit d9d21a6

Please sign in to comment.