C++ 运算符重载 : STL sort on vector of my custom class

标签 c++ sorting stl vector operator-overloading

我有一个存储在 STL Vector 中的非常基本的类。我正在尝试对该 vector 进行排序,但出现了神秘的 STL 错误。有人可以帮忙吗?

// Point.h
class Point {
public:
  Point() : x(0), y(0) {}
  Point( float x0, float y0 ) : x(x0), y(y0) {}
  float x;
  float y;
};

// Point.cpp, updated const as per given answers
bool operator< (const Point &p1,const  Point &p2)
{
    return p1.x < p2.x || (p1.x==p2.x && p1.y< p2.y);
}

同样,这个 Point 类存储在一个 vector 中并被排序:

std::vector<Point> tmp=N->points;
std::sort(tmp.begin(),tmp.end());

错误:

http://ideone.com/WIv0u

有人能指出我正确的方向吗?谢谢!

最佳答案

bool operator< ( <强> const Point &p1, <强> const Point &p2 )

关于C++ 运算符重载 : STL sort on vector of my custom class,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10308686/

相关文章:

arrays - 二维数组排序问题

c++ - Unordered_map 或 hashMap 现有散列函数修改?

c++ - 使用 Boost.Log 时如何停止所有异步接收器

java - 在我的 Java 数组分类代码中找不到问题

C++:未计算上下文中的 lambda 表达式

c++ - 小数 Eigen 稀疏矩阵乘法误差

c++11:如何编写包装函数来生成 `std::function` 对象

c++ - 您使用#pragma 编写的哪些代码有用?

c++ - 最后命名的参数不是函数或数组?

java - 计算 Java 数组中的非重复匹配对