关于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());
答案 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?。它解释了如何使用自定义谓词函数排序