выборочная сортировка с использованием pred c ++ - PullRequest
0 голосов
/ 10 мая 2018

У меня есть векторные линии, и я создал структуру для сортировки по осям 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());

Результат очень хороший, за исключением некоторого случая, когда положение двух ребер линии изменилось друг на друга. такие как:

[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]

Где я не прав? пожалуйста, помогите!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...