【发布时间】:2012-05-05 17:25:06
【问题描述】:
我有一个非常基本的类,它存储在 STL 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 类存储在一个向量中并正在排序:
std::vector<Point> tmp=N->points;
std::sort(tmp.begin(),tmp.end());
错误:
有人能指出我正确的方向吗?谢谢!
【问题讨论】:
-
尝试 const Point & 作为重载的参数。
-
您似乎对如何使用ideone.com有误解。你把你的程序放在那里,它会为你编译和生成错误信息。无需自己粘贴错误消息。
-
@MarkRansom:据我所知,ideone 上不能有多个源文件和头文件。
-
@BenjaminLindley,您可能是对的,但您可以在您要执行
#include的位置插入 .h 的内容。 -
@MarkRansom:他大概还必须插入他的 Point 实现文件的内容,在这种情况下,他不会有同样的错误。
标签: c++ sorting stl vector operator-overloading