我有一个矢量线,我创建了结构来对x轴和y轴进行排序:
struct linesSort {
bool operator() (Vec4i l1, Vec4i l2) {
int x1 = l1[0];
int y1 = l1[1];
int x2 = l2[0];
int y2 = l2[1];
if (x1 == x2) return (y1 < y2);
else return (x1 < x2);
}
};
然后我打电话给:sort(lines.begin(), lines.end(), linesSort());
结果是prety good除了某些情况,线的2个边缘位置相互变化。如:
[0, 328, 639, 272]
[0, 329, 1, 297]
[0, 347, 639, 291]
[0, 367, 639, 311]
[639, 311, 0, 368]
[0, 368, 639, 310]
[639, 310, 0, 369]
[639, 310, 0, 369]
[0, 387, 639, 331]
我哪里错了?请帮忙!