Почему ошибку выдает?
class _listAffair : listAffair {
private:
std::vector<_affair*> list;
public:
_listAffair() { }
bool sortP(_affair& right, _affair& left) {
return right.getPriority() < left.getPriority();
}
bool sortT(_affair& right, _affair& left) {
return right.getTime() < left.getTime();
}
virtual void addIn() {
_affair *t = new _affair();
list.push_back(t);
}
virtual void addIn(std::string _description) {
_affair *t = new _affair(_description);
list.push_back(t);
}
virtual void sortListPriority() {
std::sort(list.begin(), list.end(), sortP);
} // error
virtual void sortListTime() {
std::sort(list.begin(), list.end(), sortT);
} // error
virtual void changePriority(int index, int priority) {
list[index]->changePriority(priority);
}
void getInfo() {
int count = 0;
for (auto i : list) {
std::cout << count << ". " << i->getDescription() << " " << i->getTime() << std::endl;
count++;
}
}
virtual void deleteAffair(int index) {
if (list[index] != nullptr) {
delete list[index];
while (list[index++] != nullptr)
list[index - 1] = list[index];
}
}
virtual ~_listAffair() {
for (auto i : list) {
if (i != nullptr)
delete i;
}
}
};
Методы sortP
и sortT
являются нестатическими функциями-членами класса и поэтому имеют скрытый параметр this
. То есть у этих функций по три параметра, а предикат сравнения для сортировки должен иметь два параметра. Функции с тремя параметрами не могут использоваться в качестве предикатов сравнения для std::sort
.
Идентификаторы sortP
и sortT
сами по себе не является корректными выражениями в С++. Поэтому не ясно, что вы хотели сказать этим
std::sort(list.begin(), list.end(), sortP);
Если ваш вектор содержит указатели _affair *
, то и ваши предикаты сравнения для сортировки такого вектора должны принимать _affair *
. А у вас они почему-то принимают ссылки _affair &
.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Есть необходимость в написании пользовательских скриптов на Python в программе написанной на С++(QT MinGW-32bit)
Осваиваю gprofУ меня есть многопоточное приложение, которое необходимо оптимизировать