c++ map value_comp 的用法,举例说明,谢谢!

2020-08-24 军事 111阅读
C++中的map::value_comp()原型是:
value_compare value_comp ( ) const;
其返回值是一个比较类的对象,这个类是map::value_compare,并且是map的一个内部类。
返回的这个对象可以用来通过比较两个元素的value来判决它们对应的key在map的位置谁在前面谁在后面。
下面是一个简单的例子,看一下就会更明白了:
#include
#include
using namespace std;
int main ()
{
map mymap;
map::iterator it;
pair highest;
mymap['x']=1001;
mymap['y']=2002;
mymap['z']=3003;
cout << "mymap contains:\n";
highest=*mymap.rbegin(); // last element
it=mymap.begin();
do {
cout << (*it).first << " => " << (*it).second << endl;
} while ( mymap.value_comp()(*it++, highest) );
return 0;
}
输出结果:
mymap contains:
x => 1001
y => 2002
z => 3003
解释一下,上面语句while里面的mymap.value_comp()(*it++, highest)在这样的条件下会返回true:
*it++对应的key在map中排在highest对应的key的前面时。
因此,可以认为进行了一个内部的排序。
希望对你有所帮助:)
声明:你问我答网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系fangmu6661024@163.com