Comment trier deux vecteurs de la même manière, avec des critères qui n'utilisent qu'un seul des vecteurs ?
Par exemple, supposons que j'ai deux vecteurs de la même taille :
vector<MyObject> vectorA;
vector<int> vectorB;
J'ai ensuite trié vectorA
en utilisant une fonction de comparaison. Ce tri réordonnait vectorA
. Comment faire pour que le même réordonnancement s'applique à vectorB
?
Une option consiste à créer une structure :
struct ExampleStruct {
MyObject mo;
int i;
};
et ensuite trier un vecteur qui contient le contenu de vectorA
y vectorB
en un seul vecteur :
// vectorC[i] is vectorA[i] and vectorB[i] combined
vector<ExampleStruct> vectorC;
Cela ne semble pas être une solution idéale. Existe-t-il d'autres options, notamment en C++11 ?