📜  c++ unordered_map 检查键是否存在 - C++ (1)

📅  最后修改于: 2023-12-03 15:13:57.749000             🧑  作者: Mango

C++ unordered_map 检查键是否存在

介绍

unordered_map 是 C++ STL 提供的一个关联容器,使用哈希表实现,可以快速插入、删除、查找元素。本文将介绍如何使用 unordered_map 检查键是否存在。

示例代码
#include <iostream>
#include <unordered_map>

int main() {
    std::unordered_map<std::string, int> my_map;
    my_map["hello"] = 1;
    my_map["world"] = 2;

    // 检查键是否存在
    if (my_map.find("hello") != my_map.end()) {
        std::cout << "hello exists in my_map" << std::endl;
    }
    if (my_map.find("test") == my_map.end()) {
        std::cout << "test does not exist in my_map" << std::endl;
    }
    return 0;
}
解析

unordered_map 提供了 find() 函数用于查找元素,如果元素不存在,返回的是 unordered_map::end() 迭代器。因此,检查键在 unordered_map 中是否存在,可以使用以下代码:

if (my_map.find(key) != my_map.end()) {
    std::cout << "key exists in my_map" << std::endl;
}

其中,key 是要查找的键。

注意:使用 unordered_map 时,如果要查找的键不存在,不能直接使用 [] 运算符,否则会插入新元素。

// 错误示例:使用 [] 运算符插入新元素
if (my_map["test"]) {
    std::cout << "test exists in my_map" << std::endl;
}
总结

使用 unordered_map 查找键是否存在,可以使用 find() 函数和 end() 迭代器判断。了解 unordered_map 可以帮助我们更高效地处理键值对数据。