在C ++ STL中映射value_comp()

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

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

映射是关联容器,它有助于按特定顺序存储由键值和映射值的组合形成的元素。在映射容器中,数据始终在内部借助其关联的键进行排序。映射容器中的值通过其唯一键访问。

什么是map::value_comp()?

map::value_comp()是C ++ STL中的内置函数,该声明在  header file. value_comp() returns a copy of the comparison object, which is used by the map container for the comparisons. By default, this object is less than the operator’s object, which works similar to less than operator.

它是函数指针或函数对象的一种,它对特定集中的同一类型的两个值进行比较,如果容器中的第一个元素小于第二个元素,则返回true,否则返回false。

语法

Map_name.value_comp(key& k);

参数

此函数不接受任何参数。

返回值

此函数返回关联的集合容器的比较对象。

示例

输入项

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

输出结果

1
2
3

示例

#include <iostream>
#include <map>
using namespace std;
int main() {
   map<char, int> TP = {
      { 'a', 10 },
      { 'b', 20 },
      { 'c', 30 },
      { 'd', 40 },
      { 'e', 50 },
   };
   auto temp = *TP.rbegin();
   auto i = TP.begin();
   cout <<"Elements in map are : \n";
   do {
      cout<< i->first << " = " << i->second<< endl;
   } while (TP.value_comp()(*i++, temp));
   return 0;
}

输出结果

Elements in map are :
a = 10
b = 20
c = 30
d = 40
e = 50