C ++ помогите с функцией STL - sort () - PullRequest
2 голосов
/ 05 июля 2011

Еще один маленький вопрос о STL:

у меня есть словарь:

map <string,vector <Wordy> > Dictionary;

с использованием структуры Wordy:

struct Wordy{ int count; string word;}

также эта структура имеет перегруженный оператор <</p>

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

но эта функция sort () из алгоритма не работает!

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

Ответы [ 2 ]

8 голосов
/ 05 июля 2011

Ваш operator< должен принимать свои параметры по ссылке на const, я думаю, что это может быть:

bool operator< (const Wordy& One, const Wordy& Two){return One.count<Two.count;}
//              ^^^^^             ^^^^^
0 голосов
/ 05 июля 2011

проверить сообщение Как использовать std :: sort с вектором структур и сравнить функцию? . объясняется, как использовать сортировку с настраиваемой функцией предиката

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...