C++中的unordered_map用法
當你在C++中需要使用哈希表(無序映射)來管理鍵值對時,unordered_map 是一個非常有用的數據結構。以下是關于 unordered_map 的用法;
1. 概述
unordered_map 是 C++ STL(標準模板庫)中的一個關聯(lián)容器,用于存儲鍵值對。它基于哈希表實現,可以實現快速的插入、查找和刪除操作,時間復雜度接近常數級別。
2. 包含頭文件
在使用 unordered_map 之前,需要包含 <unordered_map> 頭文件:
#include <unordered_map>
3. 聲明和初始化
可以使用以下語法來聲明和初始化一個 unordered_map:
unordered_map<KeyType, ValueType> myMap; // 聲明一個空的 unordered_map
unordered_map<string, int> myMap = {{"apple", 5}, {"banana", 10}}; // 聲明并初始化一個包含鍵值對的 unordered_map
4. 插入和訪問元素
可以使用 insert 或 emplace 函數向 unordered_map 中插入新的鍵值對,并使用 [] 運算符或 at 函數來訪問元素:
unordered_map<string, int> myMap;
myMap.insert(make_pair("apple", 5)); // 插入鍵值對
myMap.emplace("banana", 10); // 插入鍵值對(C++11 特性)
int value1 = myMap["apple"]; // 使用 [] 運算符訪問元素
int value2 = myMap.at("banana"); // 使用 at 函數訪問元素
5. 刪除元素
可以使用 erase 函數刪除指定鍵的元素:
unordered_map<string, int> myMap = {{"apple", 5}, {"banana", 10}};
myMap.erase("apple"); // 刪除鍵為 "apple" 的元素
6. 查找元素
可以使用 find 函數查找指定鍵的元素,返回指向該元素的迭代器,如果未找到則返回 unordered_map::end():
unordered_map<string, int> myMap = {{"apple", 5}, {"banana", 10}};
auto it = myMap.find("apple");
if (it != myMap.end()) {
cout << "Found: " << it->first << " -> " << it->second << endl;
} else {
cout << "Not found" << endl;
}
7. 遍歷元素
可以使用迭代器來遍歷 unordered_map 中的所有元素:
unordered_map<string, int> myMap = {{"apple", 5}, {"banana", 10}};
for (auto it = myMap.begin(); it != myMap.end(); ++it) {
cout << it->first << " -> " << it->second << endl;
}
以上就是關于 unordered_map 的基本用法文檔。使用 unordered_map 可以方便地實現對鍵值對的管理和操作,適用于各種需要快速查找和插入元素的場景。
到此這篇關于C++中的unordered_map用法的文章就介紹到這了,更多相關C++ unordered_map內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

