📜  C++ STL中的unordered_multimap find()函数(1)

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

C++ STL中的unordered_multimap find()函数

在C++的STL中,unordered_multimap是一种关联容器,它将键值映射到值。与map不同的是,unordered_multimap的元素没有顺序,而且键值可以重复。

unordered_multimap提供了许多方法来操作容器中的元素,其中之一就是find()函数。它可以查找特定键值所对应的值,并返回一个指向该元素的迭代器。

语法
unordered_multimap::iterator find(const key_type& key);
参数
  • key_type:要查找的键值。
返回值

如果找到指定的键值,则返回一个指向相应元素的迭代器;如果没有找到,则返回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指针中。最后,我们使用迭代器输出这个元素的键值和值。

注意事项
  • 如果unordered_multimap中有多个相同的键值,则find()函数将返回第一个匹配的元素。
  • 对于const unordered_multimap,find()函数返回的是const_iterator类型的迭代器。