C++ STL 中 map 的 cbegin() 和 cend() 函数


在本文中,我们将讨论 C++ STL 中 map::cbegin() 和 map::cend() 函数的工作原理、语法和示例。

什么是 C++ STL 中的 Map?

Map 是关联容器,它可以方便地按特定顺序存储由键值对组成的元素。在 map 容器中,数据内部始终通过其关联的键进行排序。map 容器中的值通过其唯一的键进行访问。

什么是 map::cbegin()?

map::cbegin() function is an inbuilt
function in C++ STL, which is defined in <map>
header file. cbegin() is the constant begin function.

此函数返回一个指向 map 容器中第一个元素的常量迭代器。返回的迭代器是常量迭代器,不能用于修改内容。可以使用它们通过增加或减少迭代器来遍历 map 容器中的元素。

语法

newmap.cbegin();

参数

此函数不接受任何参数。

返回值

它返回一个指向关联 map 容器中第一个元素的迭代器。

示例

输入

map<char, int> newmap;
newmap[‘a’] = 1;
newmap[‘b’] = 2;
newmap[‘c’] = 3;
newmap.cbegin();

输出

a = 1

示例

 在线演示

#include <bits/stdc++.h>
using namespace std;
int main() {
   map<int, int> TP_Map;
   TP_Map.insert({3, 50});
   TP_Map.insert({2, 30});
   TP_Map.insert({1, 10});
   TP_Map.insert({4, 70});
   //using map::cbegin to fetch first element
   auto temp = TP_Map.cbegin();
   cout <<"First element is: "<<temp->first << " -> " << temp->second;
   cout<<"\nTP Map is : \n";
   cout << "MAP_KEY\tMAP_ELEMENT\n";
   for (auto i = TP_Map.cbegin(); i!= TP_Map.cend(); i++) {
      cout << i->first << "\t" << i->second << endl;
   }
   return 0;
}

输出

First element is: 1 -> 10
TP Map is:
MAP_KEY    MAP_ELEMENT
1             10
2             30
3             50
4             70

什么是 map::cend()?

map::cend() 函数是 C++ STL 中的内置函数,定义在…… header file. cend() function is the constant end (). This function returns the constant iterator of the element which is past the last element in the associated map container.

返回的迭代器是常量迭代器,不能用于修改内容,可以使用它们通过增加或减少迭代器来遍历 map 容器中的元素。

map::cbegin() 和 map::cend() 用于通过给出范围的开始和结束来遍历整个容器。

语法

newmap.cend();

参数

此函数不接受任何参数。

返回值

它返回一个指向关联 map 容器中最后一个元素之后的迭代器。

示例

输入

map<char, int> newmap;
newmap[‘a’] = 1;
newmap[‘b’] = 2;
newmap[‘c’] = 3;
newmap.cend();

输出

error

示例

 在线演示

#include <bits/stdc++.h>
using namespace std;
int main() {
   map<int, int> TP_Map;
   TP_Map.insert({3, 50});
   TP_Map.insert({2, 30});
   TP_Map.insert({1, 10});
   TP_Map.insert({4, 70});
   cout<<"\nTP Map is : \n";
   cout << "MAP_KEY\tMAP_ELEMENT\n";
   for (auto i = TP_Map.cbegin(); i!= TP_Map.cend(); i++) {
      cout << i->first << "\t" << i->second << endl;
   }
   return 0;
}

输出

TP Map is:
MAP_KEY    MAP_ELEMENT
1             10
2             30
3             50
4             70

更新于:2020年4月15日

96 次浏览

开启你的职业生涯

通过完成课程获得认证

开始学习
广告