跳转至

Unordered map

C++ 中的无序字典,使用哈希表实现。对元素的搜索、插入和删除具有平均常数时间复杂度 \(O(1)\)

简单使用

unordered_map<int, int> umap1;

// 匹配的键值对数量,只有 0 或 1 两种情况
umap1.count(1);
// C++20
// 检查是否包含特定键值对
umap1.contains(1);

umap1.insert({1,2});
umap1.emplace(1,2);
umap1.try_emplace(1, 2);
umap1[3] = 1;

// 无边界检查访问元素
umap1.at(3);

// 遍历访问
for (auto it = umap1.begin(); it != umap1.end(); it++) {
    printf("(%d, %d) ", it->first, it->second);
}
printf("\n");

for (auto& it: umap1) {
    printf("(%d, %d) ", it.first, it.second);
}
printf("\n");

for (auto& [key, value] : umap1) {
    printf("(%d, %d) ", key, value);
}
printf("\n");