STL multimap查找元素

STL multimap查找元素教程

我们要在 STL 中的 multimap 容器中查找键为某个值的元素时,可以使用 find 函数,如果成功找到,则返回指向该键值对的双向迭代器;反之,则返回和 end() 方法一样的迭代器。

STL multimap find详解

语法

find(key)

参数

参数 描述
key 需要查找的键。

说明

在 multimap 容器中查找键为 key 的键值对,如果成功找到,则返回指向该键值对的双向迭代器;反之,则返回和 end() 方法一样的迭代器。另外,如果 multimap 容器用 const 限定,则该方法返回的是 const 类型的双向迭代器。

案例

使用find查找multimap元素

使用 find 方法查找 multimap 中的元素

#include <iostream> #include <map> using namespace std; int main() { cout << "嗨客网(www.haicoder.net)\n" << endl; multimap<int, string> multimap1{{1, "Mon"}, {2, "Thu"}, {3, "Wed"}}; auto iter = multimap1.find(2); if (iter != multimap1.end()) { cout << "Find: " << iter->first << " " << iter->second << endl; } else { cout << "Not Find 2" << endl; } iter = multimap1.find(4); if (iter != multimap1.end()) { cout << "Find: " << iter->first << " " << iter->second << endl; } else { cout << "Not Find 4" << endl; } return 0; }

编译后,我们直接运行生成的二进制文件 a.out,如下图所示:

26_STL multimap查找元素.png

我们首先使用了 find 查找 multimap 中指定键的元素,将返回的迭代器与 end 迭代器进行比较,如果找到,则不等于 end 迭代器,否则,没找到,则返回值等于 end 迭代器。

使用find查找multimap元素

使用 find 方法查找 multimap 中的元素

#include <iostream> #include <map> using namespace std; int main() { cout << "嗨客网(www.haicoder.net)\n" << endl; multimap<int, string> multimap1{{1, "Mon"}, {2, "Thu"}, {3, "Wed"}, {1, "mon"}}; auto iter = multimap1.find(1); if (iter != multimap1.end()) { cout << "Find: " << iter->first << " " << iter->second << endl; } else { cout << "Not Find 1" << endl; } return 0; }

编译后,我们直接运行生成的二进制文件 a.out,如下图所示:

27_STL multimap查找元素.png

这次,我们使用了 find 查找 map 中键为 1 的元素,此时,有两个键都为 1,最终 find 函数返回了第一个键和对应的值。

STL multimap查找元素总结

我们要在 STL 中的 multimap 容器中查找键为某个值的元素时,可以使用 find 函数,如果成功找到,则返回指向该键值对的双向迭代器;反之,则返回和 end() 方法一样的迭代器。