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) | 特定の基準を満たすすべての要素を削除します (関数テンプレート) |