C++ STL 中 unordered_multimap cend() 函数

C++ STL 中 unordered_multimap cend() 函数

C++ STL中,unordered_multimap是一种关联容器,其底层结构是哈希表。通过哈希表,unordered_multimap能够提供O(1)时间复杂度的元素查找、插入和删除操作。本文将介绍unordered_multimapcend()函数的使用方法及其注意事项。

什么是 cend() 函数?

cend()unordered_multimap类的成员函数,它返回一个常量迭代器,指向unordered_multimap容器中的结束元素。具体来说,该函数返回的是指向一个“过去-the-past-the-beginning”的迭代器,也就是指向unordered_multimap中不存在的元素的迭代器。需要注意的是,返回的是常量迭代器,所以不允许修改其所指向的元素。

下面是使用cend()函数的示例代码:

#include <iostream>
#include <unordered_map>

int main()
{
  std::unordered_multimap<std::string, int> mymap = {{"apple",1},{"banana",2},{"cherry",3}};

  std::cout << "Traversing unordered_multimap using cend():" << std::endl;
  for (auto it = mymap.begin(); it != mymap.cend(); ++it) {
      std::cout << "{" << (*it).first << ", " << (*it).second << "}" << std::endl; 
  }

  return 0;
}

运行以上代码,输出结果如下:

Traversing unordered_multimap using cend():
{cherry, 3}
{cherry, 4}
{apple, 1}
{banana, 2}

可以看到,cend()函数返回的迭代器指向的是unordered_multimap容器中不存在的元素,而在for循环中,为了遍历容器,我们使用了begin()函数返回的迭代器和cend()函数返回的迭代器配合,遍历整个容器。

注意事项

  1. cend()函数返回的常量迭代器不允许修改其所指向的元素。如果需要修改元素,应该使用iteratorconst_iterator迭代器。
  2. cend()函数返回的迭代器指向的元素不存在与unordered_multimap容器中。因此,不要尝试访问cend()函数返回的迭代器所指向的元素,否则会出现未定义行为。

结论

cend()函数是unordered_multimap类中的一个非常有用的函数,它返回的迭代器引用的是一个不存在的元素,通过配合begin()函数的迭代器,可以遍历整个unordered_multimap容器。需要注意的是,返回的是常量迭代器,不允许修改其所指向的元素,同时不要尝试访问该迭代器所指向的元素,否则会出现未定义行为。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程

C++ 教程