У меня есть следующий вектор:
std::vector< std::pair<int, int> > vectorOfPairs
со следующими пунктами:
0, 1
0, 2
1, 4
2, 3
3, 4
4, 5
5, 6
Я хотел бы отсортировать их таким образом, чтобы второй компонент каждой пары был равен первому компоненту ближайшей пары в векторе, примерно так:
0, 1
1, 4
4, 5
5, 6
0, 2
2, 3
3, 4
Я не знаю, достаточно ли этого, я добавлю изображение, показывающее, что я пытаюсь сделать:
Я чувствую, что должен использовать sort
с каким-то компаратором, но я потерялся прямо здесь:
std::sort(vectorOfPairs.begin(), vectorOfPairs.end(), MyComparator);
bool MyComparator(pair<int, int> a, pair<int, int> b) {
if(some_kind_of_comparison){
return true;
}
return false;
}
Я новичок с С++, и если кто-то может помочь мне с псевдокодом, как это сделать, я буду очень благодарен.