C++ STL 中的 multimap value_comp() 函数


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

什么是 C++ STL 中的多重映射?

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

什么是 multimap::value_comp()?

multimap::value_comp() 是 C++ STL 中的一个内置函数,在 <map> 头文件中声明。value_comp() 返回比较对象的副本,它由多重映射容器用于比较。默认情况下,这个对象是小操作对象,它类似于小于操作。

它是一种函数指针或函数对象,在特定的多重映射中比较两个相同类型的元素,如果第一个元素比容器中的第二个元素小,则返回 true,否则返回 false。

语法

multi_name.value_comp();

参数

此函数不接受任何参数。

返回值

此函数返回一个与关联多重映射容器有关的比较对象。

输入

multimap<char, int> newmap;
newmap(make_pair(‘a’, 1));
newmap(make_pair(‘b’, 2));
newmap(make_pair(‘c’, 3));
multimap<int>::value_compare cmp = myset.value_comp();

输出

1
2
3

示例

 动态演示

#include <iostream>
#include <map>
using namespace std;
int main(){
   multimap<int, char> mul;
   //inserting elements at given key
   mul.insert(make_pair(0, 'A'));
   mul.insert(make_pair(1, 'B'));
   mul.insert(make_pair(2, 'C'));
   mul.insert(make_pair(3, 'D'));
   pair<int, char> temp = *mul.rbegin();
   multimap<int, char>::iterator it = mul.begin();
   cout<<"Elements at given key is : "<<'\n';
   do {
      cout << (*it).first << " = " << (*it).second << '\n';
   }
   while (mul.value_comp()(*it++, temp));
      return 0;
}

输出

如果运行以上代码,则会生成以下输出 −

Elements at given key is :
0 = A
1 = B
2 = C
3 = D

更新日期:2020 年 4 月 22 日

171 条浏览

开启 职业生涯

完成课程后获得认证

开始学习
广告
© . All rights reserved.