c++ - 我在使用算法的库排序功能时遇到问题

标签 c++ c++14

我想按属性将指针向量排序为指针向量,但是我不愿意这样做。
这是我的代码:

类:

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/

相关文章:

c++ - 可变递归模板

模板中的 C++ 静态常量初始化顺序

c++ - 将排序数组的元素分成最少数量的组,使得新数组的元素之间的差异小于或等于 1

c++ - 每次调用函数时如何动态创建新数组?

C++跨平台网络摄像头通过套接字流式传输

c++ - 值在常量表达式替代模式中不可用

c++ - 用于非虚拟和私有(private)函数的 Google Mock

c++ - 从字符串数据类型的字符串中分离元音并将其存储在新字符串中

c++ - 找不到以下代码中的错误 :- expected unqualified-id before try()

c++ - 关于 MySQL++、GPL 和 LGPL