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()`)等等。