STL unordered_multiset迭代器

STL unordered_multiset迭代器教程

我们要访问 unordered_multiset 中的元素,也只能使用迭代器的形式。

STL unordered_multiset迭代器详解

成员函数列表

成员方法 功能
begin() 返回指向容器中第一个元素的正向迭代器。
end() 返回指向容器中最后一个元素之后位置的正向迭代器。
cbegin() 和 begin() 功能相同,只不过其返回的是 const 类型的正向迭代器。
cend() 和 end() 功能相同,只不过其返回的是 const 类型的正向迭代器。
find(val) 查找以值为 key 的元素,如果找到,则返回一个指向该元素的正向迭代器;反之,则返回一个指向容器中最后一个元素之后位置的迭代器(如果 end() 方法返回的迭代器)。
equal_range(val) 返回一个 pair 对象,其包含 2 个迭代器,用于表明当前容器中值为 key 的元素所在的范围。

案例

unordered_multiset begin和end迭代器

使用 begin 和 end 迭代器访问元素

#include <iostream> #include <unordered_set> using namespace std; int main() { cout << "嗨客网(www.haicoder.net)\n" << endl; unordered_multiset<string> unordered_multiset1{"HaiCoder", "www.haicoder.net", "haicoder.net"}; for(auto iter = unordered_multiset1.begin(); iter != unordered_multiset1.end(); ++iter) { cout << *iter << endl; } return 0; }

因为,这里需要使用 C++ 11,因此,我们在 Linux 下使用 g++ 进行编译,具体命令如下:

g++ unordered_multiset.cpp -std=c++11

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

51_unordered_multiset迭代器.png

我们使用了 unordered_multiset 的迭代器,访问了 unordered_multiset 的所有元素。

unordered_multiset cbegin和cend迭代器

使用 cbegin 和 cend 迭代器访问元素

#include <iostream> #include <unordered_set> using namespace std; int main() { cout << "嗨客网(www.haicoder.net)\n" << endl; unordered_multiset<string> unordered_multiset1{"HaiCoder", "www.haicoder.net", "haicoder.net"}; for(auto iter = unordered_multiset1.cbegin(); iter != unordered_multiset1.cend(); ++iter) { cout << *iter << endl; } return 0; }

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

52_unordered_multiset迭代器.png

我们使用了 cbegin 和 cend 反向迭代器,遍历了 unordered_multiset 的所有元素。

STL unordered_multiset迭代器教程

我们要访问 unordered_multiset 中的元素,也只能使用迭代器的形式。