我想按属性将指针向量排序为指针向量,但是我不愿意这样做。
这是我的代码:
类:
class Carro
{
//...
double positionX;
//...
double getXPosition() const; (i've tryed with and without const)
};
然后我在另一个类中有一个指针向量:
vector<Carro*> carros;
然后,我有另一个向量,它指向前一个并且仅指向某些元素,并且我试图通过位置positionX来对第二个向量进行排序。
#pragma once
#include <algorithm>
using namespace std;
vector<Carro*> carros2;
bool Pista::sortCarrosByPosition(Carro* p1, Carro* p2)
{
return p1->getXPosition() > p2->getXPosition();
}
sort(carros2.begin(), carros2.end(), sortCarrosByPosition);
我有以下错误:
see declaration of 'std::sort'
C2780: void std::sort(const _RanIt,const _RanIt)': expects 2 arguments - 3 provided
C2682: 'sort': no matching overloaded function found
C3867: 'Pista::sortCarrosByPosition': non-standard syntax; use '&' to create a pointer to member
我知道我想念一些东西,但不能完全动手...
最佳答案
好吧,我宣布我的排序功能为静态:
static bool sortCarrosByPosition(Carro* p1, Carro* p2);
错误消失了,让我们看看它是否有效。
关于c++ - 我在使用算法的库排序功能时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59415378/