Как я могу отсортировать два вектора одинаковым образом, используя критерии, которые используют только один из векторов?
Например, предположим, что у меня есть два вектора одинакового размера: р>
Затем я сортирую векторA, используя некоторую функцию сравнения. Эта сортировка изменила порядок вектора VectorA. Как я могу применить такое же изменение порядка к векторуB?
Один из вариантов — создать структуру:
Код: Выделить всё
struct ExampleStruct {
MyObject mo;
int i;
};
а затем отсортируйте вектор, содержащий содержимое векторов VectorA и VectorB, сжатых в один вектор:
Код: Выделить всё
// vectorC[i] is vectorA[i] and vectorB[i] combined
vector vectorC;
Это не кажется идеальным решением. Есть ли другие способы сделать это?
Подробнее здесь:
https://stackoverflow.com/questions/170 ... nly-one-of