📅  最后修改于: 2023-12-03 15:13:56.817000             🧑  作者: Mango
在C++的STL中,unordered_multimap是一种关联容器,它将键值映射到值。与map不同的是,unordered_multimap的元素没有顺序,而且键值可以重复。
unordered_multimap提供了许多方法来操作容器中的元素,其中之一就是find()函数。它可以查找特定键值所对应的值,并返回一个指向该元素的迭代器。
unordered_multimap::iterator find(const key_type& key);
如果找到指定的键值,则返回一个指向相应元素的迭代器;如果没有找到,则返回end()迭代器。
#include <iostream>
#include <unordered_map>
#include <string>
int main() {
std::unordered_multimap<int, std::string> myMap = {{1, "apple"}, {2, "banana"}, {3, "orange"}, {1, "pear"}};
auto iter = myMap.find(1); // 查找键值为1的元素
if(iter != myMap.end()) {
std::cout << "Key: " << iter -> first << ", Value: " << iter -> second << std::endl;
}
else {
std::cout << "Not found" << std::endl;
}
return 0;
}
输出:
Key: 1, Value: apple
在这个示例中,我们首先创建了一个unordered_multimap,其中有四个元素。然后我们使用find()函数查找键值为1的元素,并将其保存在iter指针中。最后,我们使用迭代器输出这个元素的键值和值。