在C++中,map.count
和map.find
都是用来搜索map
中指定键的函数,但它们有一些不同之处。
map.count
返回指定键在map
中出现的次数,即返回值为0或1。如果指定键存在,则返回1,否则返回0。示例:
std::map<int, std::string> myMap = {{1, "apple"}, {2, "banana"}, {3, "orange"}};
int count = myMap.count(2);
// count的值为1,因为键2存在于map中
map.find
返回一个迭代器,指向map
中指定键的位置。如果找到指定键,则返回指向该键的迭代器;如果未找到指定键,则返回map.end()
。示例:
std::map<int, std::string> myMap = {{1, "apple"}, {2, "banana"}, {3, "orange"}};
auto it = myMap.find(2);
if (it != myMap.end()) {
std::cout << "Key found, value is: " << it->second << std::endl;
} else {
std::cout << "Key not found" << std::endl;
}
总的来说,map.count
适用于只需要知道指定键是否存在以及出现的次数的情况,而map.find
适用于需要获取指定键的值或者进行修改操作的情况。