C++中的 `std::unordered_map` 是一个关联容器,它包含的元素是一对键值(key-value pair)。在 `std::unordered_map` 中,元素不会按照键(key)排序,而是根据键的哈希值组织到哈希表中,因此查找、插入和删除的平均时间复杂度可以达到O(1)。
以下是 `std::unordered_map` 的一些基本用法:
1. **初始化**:
std::unordered_map<std::string, int> myMap;
2. **插入元素**:
myMap["apple"] = 1;
myMap["banana"] = 2;
// 或者
myMap.insert(std::make_pair("cherry", 3));
3. **访问元素**:
int apple_count = myMap["apple"]; // apple_count will be 1
4. **查找元素**:
auto it = myMap.find("apple");
if(it != myMap.end()){
std::cout << "apple = " << it->second << std::endl;
}else{
std::cout << "not found" << std::endl;
}
5. **删除元素**:
myMap.erase("apple"); // 删除键为 "apple" 的元素
6. **遍历元素**:
for(const auto &pair : myMap) {
std::cout << pair.first << ": " << pair.second << std::endl;
}
这只是 `std::unordered_map` 的一些基本用法,实际上 `std::unordered_map` 提供了许多其他功能,例如获取大小(`.size()`),检查容器是否为空(`.empty()`)等等。