Можно создать дубликат:
How to use std::sort with a vector of structures and compare function?Сортировка вектор объектов по атрибутам объекта
У меня есть объект кошки (что?) И объект catSort, который, очевидно, сортирует объекты кошки. Ниже приведены классы
class cat {
public:
int age;
};
class catSorter {
public:
vector<cat> cats;
vector<cat> SortCatsByAge();
void AddCat(cat new_cat);
};
void catSorter::AddCat(cat new_cat){
this->cats.push_back(new_cat)
}
vector<cat> catSorter::SortCatsByAge(){
// Sort cats here by age!
}
cat tim;
tim.age = 10;
cat mark;
mark.age = 20
cat phil;
phil.age = 3;
catSorter sorter;
sorter->AddCat(tim);
sorter->AddCat(mark);
sorter->AddCat(phil);
std::<vector> sortedcats = sorter->SortCatsByAge();
У меня возникли трудности с сортировкой вектора, как бы я это сделал? Должен ли я просто пройти через атрибут cats
и сохранить их во временном векторе, а затем вернуть это? Есть ли более простой способ сделать это?
[Взгляд вверх std :: sort] (http://msdn.microsoft.com/en-us/library/ecdecxh1 (v = vs.80) .aspx). Вы хотите использовать предикат, чтобы рассказать ему, как сортировать 'cat' объекты. –