std::map
提供: cppreference.com
ヘッダ <map> で定義
|
||
template< class Key, |
(1) | |
namespace pmr { template <class Key, class T, class Compare = std::less<Key>> |
(2) | (C++17以上) |
std::map
は一意なキーを持つキー値ペアを格納するソートされた連想コンテナです。 キーは比較関数 Compare
を使用してソートされます。 検索、削除、挿入の操作の計算量は対数時間です。 map は通常赤黒木として実装されます。
標準ライブラリが Compare 要件を使用する場所ではすべて、一意性は同等関係を使用して決定されます。 不正確な言葉で言うと、2つのオブジェクト a
と b
は、どちらがどちらより小さいわけでもない (!comp(a, b) && !comp(b, a)
) 場合に等しいとみなされます。
std::map
は Container, AllocatorAwareContainer, AssociativeContainer, ReversibleContainer の要件を満たします。
目次 |
[編集] メンバ型
メンバ型 | 定義 | ||||
key_type
|
Key
| ||||
mapped_type
|
T
| ||||
value_type
|
std::pair<const Key, T> | ||||
size_type
|
符号なし整数型 (通常 std::size_t) | ||||
difference_type
|
符号付き整数型 (通常 std::ptrdiff_t) | ||||
key_compare
|
Compare
| ||||
allocator_type
|
Allocator
| ||||
reference
|
| ||||
const_reference
|
| ||||
pointer
|
| ||||
const_pointer
|
| ||||
iterator
|
LegacyBidirectionalIterator | ||||
const_iterator
|
const LegacyBidirectionalIterator | ||||
reverse_iterator
|
std::reverse_iterator<iterator> | ||||
const_reverse_iterator
|
std::reverse_iterator<const_iterator> | ||||
node_type (C++17以上) |
コンテナノードを表すノードハンドルの特殊化 | ||||
insert_return_type (C++17以上) |
node_type を挿入した結果を表す型。 テンプレート引数 iterator および node_type でインスタンス化された template <class Iter, class NodeType> struct /*unspecified*/ { Iter position; bool inserted; NodeType node; }; |
[編集] メンバクラス
value_type 型のオブジェクトを比較します (クラス) |
[編集] メンバ関数
map を構築します (パブリックメンバ関数) | |
map を破棄します (パブリックメンバ関数) | |
コンテナに値を代入します (パブリックメンバ関数) | |
関連付けられているアロケータを返します (パブリックメンバ関数) | |
要素アクセス | |
(C++11) |
境界チェック付きで指定された要素にアクセスします (パブリックメンバ関数) |
指定された要素にアクセスまたは挿入します (パブリックメンバ関数) | |
イテレータ | |
先頭を指すイテレータを返します (パブリックメンバ関数) | |
終端を指すイテレータを返します (パブリックメンバ関数) | |
先頭を指す逆イテレータを返します (パブリックメンバ関数) | |
終端を指す逆イテレータを返します (パブリックメンバ関数) | |
容量 | |
コンテナが空かどうか調べます (パブリックメンバ関数) | |
要素数を返します (パブリックメンバ関数) | |
可能な最大の要素数を返します (パブリックメンバ関数) | |
変更 | |
すべての要素を削除します (パブリックメンバ関数) | |
要素またはノード (C++17以上)を挿入します (パブリックメンバ関数) | |
(C++17) |
要素を挿入します。 キーがすでに存在している場合は現在の要素に代入します (パブリックメンバ関数) |
(C++11) |
要素をその場で構築します (パブリックメンバ関数) |
(C++11) |
ヒントを使用して要素をその場で構築します (パブリックメンバ関数) |
(C++17) |
キーが存在しなければその場で挿入します。 キーが存在している場合は何もしません (パブリックメンバ関数) |
要素を削除します (パブリックメンバ関数) | |
(C++11) |
内容を入れ替えます (パブリックメンバ関数) |
(C++17) |
コンテナからノードを抽出します (パブリックメンバ関数) |
(C++17) |
他のコンテナからノードを接合します (パブリックメンバ関数) |
検索 | |
指定されたキーと一致する要素の数を返します (パブリックメンバ関数) | |
指定されたキーを持つ要素を探します (パブリックメンバ関数) | |
(C++20) |
コンテナが指定されたキーを持つ要素を格納しているかどうか調べます (パブリックメンバ関数) |
指定されたキーに一致する要素の範囲を返します (パブリックメンバ関数) | |
指定されたキーより小さくない最初の要素を指すイテレータを返します (パブリックメンバ関数) | |
指定されたキーより大きい最初の要素を指すイテレータを返します (パブリックメンバ関数) | |
観察 | |
キーを比較する関数を返します (パブリックメンバ関数) | |
value_type 型のオブジェクト内のキーを比較する関数を返します (パブリックメンバ関数) |
[編集] 非メンバ関数
(C++20で削除)(C++20で削除)(C++20で削除)(C++20で削除)(C++20で削除)(C++20) |
map 内の値を辞書的に比較します (関数テンプレート) |
std::swap アルゴリズムの特殊化 (関数テンプレート) | |
(C++20) |
特定の基準を満たすすべての要素を削除します (関数テンプレート) |