マップ¶
配列では要素参照のために何番目の要素と指定しますが、
std::map
または std::unorderd_map
という型を使用すると
何番目という指定の代わりに任意の型をキーとして指定できます。
この機能は連想配列や辞書とも呼ばれます。
#include <map> std::map<std::string, int> persons = { {"Alice", 18}, {"Bob", 20} };
#include <unordered_map> std::unordered_map<std::string, int> persons = { {"Alice", 18}, {"Bob", 20} };
要素参照は次のようにします。
persons["Alice"]; // 18 persons["Bob"]; // 20
要素追加¶
insert()
で要素を追加することができます。
persons.insert({"Eve", 19});
要素削除¶
erase()
で要素を削除することができます。
persons.erase("Bob");
std::map
と std::unordered_map
の違い¶
std::map
はキーでソートしてデータを管理するのに対し、
std::unordered_map
はキーから計算するハッシュと呼ばれる値でデータを管理します。
効率のよいハッシュ計算を行える場合には std::unordered_map
の方が適しています。