C ++ STL中的multimap :: crbegin()和multimap :: crend()

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

什么是C ++ STL中的Multimap?

多图是关联容器,类似于图容器。它还有助于按特定顺序存储由键值和映射值的组合形成的元素。在多图容器中,可以有多个与同一键关联的元素。始终在内部借助关联的键对数据进行排序。

什么是multimap::cbegin()?

multimap::crbegin()函数是C ++ STL中的内置函数,在<map>头文件中定义。crbegin()表示常数反向开始,表示常数开始的cbegin的反向,换句话说,该函数crbegin()将返回指向与该函数关联的multimap容器的最后一个元素的迭代器。该迭代器不能用于修改多图。这可以仅用于遍历已设置的容器。

语法

mutliMap_name.crbegin();

参数

此函数不接受任何参数。

返回值

此函数返回指向容器最后一个元素的迭代器。

输入值 

multimap<char, int> newmap;
newmap(make_pair(‘a’, 1));
newmap(make_pair(‘b’, 2));
newmap(make_pair(‘c’, 3));
newmap.crbegin();

输出结果 

c:3

示例

#include <bits/stdc++.h>
using namespace std;
int main(){
   //创建容器
   multimap<int, int> mul;
   //使用emplace插入
   mul.emplace_hint(mul.begin(), 1, 10);
   mul.emplace_hint(mul.begin(), 2, 20);
   mul.emplace_hint(mul.begin(), 2, 30);
   mul.emplace_hint(mul.begin(), 1, 40);
   mul.emplace_hint(mul.begin(), 1, 50);
   mul.emplace_hint(mul.begin(), 5, 60);
   auto it = mul.crbegin();
   cout<<"Last element using crbegin() is: {"<<it->first<< ", " << it->second << "}\n";
   cout <<"\nElements in multimap is : \n";
   cout << "KEY\tELEMENT\n";
   for (auto i = mul.crbegin(); i!= mul.crend(); i++){
      cout << i->first << "\t" << i->second << endl;
   }
   return 0;
}

输出结果

如果我们运行上面的代码,它将生成以下输出-

Last element using crbegin() is: {5, 60}
Elements in multimap is :
KEY ELEMENT
5 60
2 20
2 30
1 10
1 40
1 50

什么是multimap::crend()?

multimap::crend()函数是C ++ STL中的内置函数,在<map>头文件中定义。crend()表示常量的反向端点迭代器,意味着它与作为常量端点的迭代器的cend是反向的,换句话说,该函数crend()将返回指向恰好与该函数关联的容器的第一个位置之前的位置的迭代器。该迭代器不能用于修改多图。这可以仅用于遍历多图容器。

语法

newmultimap.crend();

参数

此函数不接受任何参数。

返回值

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

输入值 

multimap<char, int&lgt; newmap;
newmap(make_pair(‘a’, 1));
newmap(make_pair(‘b’, 2));
newmap(make_pair(‘c’, 3));
newmap.crend();

输出结果 

error

示例

#include <bits/stdc++.h>
using namespace std;
int main(){
   //创建容器
   multimap<int, int> mul;
   //使用emplace插入
   mul.emplace_hint(mul.begin(), 1, 10);
   mul.emplace_hint(mul.begin(), 2, 20);
   mul.emplace_hint(mul.begin(), 2, 30);
   mul.emplace_hint(mul.begin(), 1, 40);
   mul.emplace_hint(mul.begin(), 1, 50);
   mul.emplace_hint(mul.begin(), 5, 60);
   cout << "\nElements in multimap is : \n";
   cout << "KEY\tELEMENT\n";
   for (auto i = mul.crbegin(); i!= mul.crend(); i++){
      cout <<<; i->first << "\t" << i->second < endl;
   }
   return 0;
}

输出结果

如果我们运行上面的代码,它将生成以下输出-

Elements in multimap is :
KEY ELEMENT
5 60
2 20
2 30
1 10
1 40
1 50