C ++帮助STL - sort()函数

时间:2011-07-04 20:55:35

标签: c++ algorithm sorting stl

关于STL的另一个小问题:

我有词典:

map <string,vector <Wordy> > Dictionary;

使用结构Wordy:

struct Wordy{ int count; string word;}

此结构也重载了运算符&lt;

bool operator< (Wordy& One, Wordy& Two){return One.count<Two.count;}

但算法中的sort()函数不起作用!

sort(Dictionary.find(s)->second.begin(),Dictionary.find(s)->second.end());

2 个答案:

答案 0 :(得分:8)

你的operator<应该通过引用到const来获取它的参数,我想可能就是这样:

bool operator< (const Wordy& One, const Wordy& Two){return One.count<Two.count;}
//              ^^^^^             ^^^^^

答案 1 :(得分:0)

检查帖子How to use std::sort with a vector of structures and compare function?。它解释了如何使用自定义谓词函数排序