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

📅  最后修改于: 2023-12-03 14:59:46.901000             🧑  作者: Mango

C++ STL中的unordered_multimap cend()函数介绍

1. unordered_multimap

在介绍cend()函数之前,我们先来简单了解一下unordered_multimap。

unordered_multimap是STL中的容器之一,是一个无序的关联容器,其内部元素可以随机存取。每个元素都是一个键值对(key-value pair),即一个键对应一个值。一个键可以对应多个值,因此也称为多重映射容器(multi-map)。

2. cend()函数
unordered_multimap::const_iterator cend() const noexcept;

cend()函数返回一个指向容器末尾(最后一个元素之后)的迭代器,该迭代器是一个const_iterator。

  • const_iterator:const迭代器,不能通过迭代器修改元素值。
  • noexcept:C++11引入的技术,告诉编译器此函数不可能抛出异常。

使用cend()函数时,需要注意以下几点:

  • cend()函数不会改变unordered_multimap的大小。
  • cend()返回的迭代器无法修改unordered_multimap的内容,它的成员函数只能调用const成员函数。
  • unordered_multimap和其元素只要没有被销毁,cend()返回的迭代器就一直有效。
3. 示例
#include <iostream>
#include <unordered_map>

using namespace std;

int main()
{
    // 创建unordered_multimap容器
    unordered_multimap<int, char> um =
    {
        {1, 'a'},
        {2, 'b'},
        {3, 'c'},
        {4, 'd'},
        {5, 'e'}
    };

    // 使用cend()函数输出所有元素
    auto iter = um.begin();
    cout << "元素值为:";
    for (iter; iter != um.cend(); iter++)
    {
        cout << "(" << iter->first << "," << iter->second << ") ";
    }

    return 0;
}

运行结果如下:

元素值为:(1,a) (2,b) (3,c) (4,d) (5,e)
4. 总结

cend()函数为C++ STL中unordered_multimap容器提供了便利。通过cend()函数,我们可以获取容器的末尾位置迭代器,并在不改变容器大小和内容的情况下,循环遍历unordered_multimap中的每一个元素。