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

 我来答
笨a小孩
2011-07-02 · TA获得超过2735个赞
知道小有建树答主
回答量:582
采纳率:0%
帮助的人:291万
展开全部
C++中的map::value_comp()原型是:
value_compare value_comp ( ) const;
返回值是一个比较类的对象,这个类是map::value_compare,并且是map的一个内部类。
返回的这个对象可以用来通过比较两个元素的value来判决它们对应的key在map的位置谁在前面谁在后面。

下面是一个简单的例子,看一下就会更明白了:
#include <iostream>
#include <map>
using namespace std;

int main ()
{
map<char,int> mymap;
map<char,int>::iterator it;
pair<char,int> 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的前面时。

因此,可以认为进行了一个内部的排序。

希望对你有所帮助:)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式