unordered_mapというC++の機能は何をするのですか?
unordered_mapは、C++の標準ライブラリで、キーと値のペアを格納するためのコンテナです。辞書やハッシュテーブルのような役割を果たし、キーに基づいて迅速に値を検索できます。
unordered_mapはハッシュテーブルを使用しており、高速な検索操作を実現しています。mapコンテナと比較して、unordered_mapはキーの順序でソートされていないため、検索操作がより効率的です。unordered_mapは、カウンターやキャッシュなど、キーと値のペアを素早く検索する必要があるシチュエーションに使用することができます。
unordered_mapを使用すると、キーと値は特定の要件を満たしていれば任意の型であっても構いません。unordered_mapには、挿入、削除、アクセス、およびキーと値の変更を容易にするための一連のメンバー関数と演算子が用意されています。
例えば、以下のコードはunordered_mapの基本的な使い方を示しています。
#include <iostream>
#include <unordered_map>
int main() {
std::unordered_map<int, std::string> map;
// 插入键值对
map.insert({1, "apple"});
map.insert({2, "banana"});
map.insert({3, "orange"});
// 访问和修改值
std::cout << map[1] << std::endl; // 输出: apple
map[1] = "kiwi";
std::cout << map[1] << std::endl; // 输出: kiwi
// 查找键值对
if (map.find(2) != map.end()) {
std::cout << "Found key 2: " << map[2] << std::endl; // 输出: Found key 2: banana
}
// 删除键值对
map.erase(3);
// 遍历所有键值对
for (const auto& pair : map) {
std::cout << "Key: " << pair.first << ", Value: " << pair.second << std::endl;
}
return 0;
}
結果出力:
apple
kiwi
Found key 2: banana
Key: 1, Value: kiwi
Key: 2, Value: banana
要简洁地说,unordered_map提供了一种有效的方法来存储和查找键值对,适用于需要快速访问和修改数据的情况。