unordered_map 头文件提供了 unordered_map 容器,它是一种基于哈希表的关联容器,允许高效插入、删除和查找元素,应用于快速查找数据结构的场景,如字典、缓存、索引和集合。
unordered_map 头文件
什么是 unordered_map 头文件?
unordered_map 头文件是 C++ 标准库的一部分,它定义了 unordered_map 容器。unordered_map 是一種基於雜湊表的關聯容器,它允許快速插入、刪除和查找元素。
unordered_map 的特性
- 使用雜湊函數來快速查找元素。
- 允許重複的鍵,每個鍵對應一個值。
- 鍵和值類型可以自訂。
- 沒有順序,元素的插入和刪除不會改變迭代的順序。
unordered_map 的使用
unordered_map 通常用於需要快速查找查詢資料結構的應用程式中,例如:
- 字典和翻譯器
- 快取和暫存器
- 資料庫索引
- 集合和多重集合
範例
以下是一個使用 unordered_map 的範例:
#include <unordered_map>
using namespace std;
int main() {
// 建立一個從字串到整數的關聯容器
unordered_map<string int> myMap;
// 加入元素
myMap["Apple"] = 1;
myMap["Banana"] = 2;
// 查詢元素
if (myMap.find("Apple") != myMap.end()) {
// 搜尋到元素
}
// 刪除元素
myMap.erase("Banana");
return 0;
}</string></unordered_map>
與其他容器的比較
- map: 有序容器,使用紅黑樹實作,查找時間為對數複雜度。
- unordered_set: 雜湊表容器,只儲存鍵,不儲存值。
- unordered_multimap: 雜湊表容器,允許重複的鍵和值。
unordered_map 在查找速度和記憶體使用方面通常比有序容器更有效率,但會犧牲元素的順序。