如何以相同的方式对两个向量进行排序,使用仅使用其中一个向量的条件?
例如,假设我有两个相同大小的向量:
vector<MyObject> vectorA;
vector<int> vectorB;
Run Code Online (Sandbox Code Playgroud)
然后我vectorA使用一些比较函数排序.排序重新排序vectorA.如何应用相同的重新排序vectorB?
一种选择是创建一个结构:
struct ExampleStruct {
MyObject mo;
int i;
};
Run Code Online (Sandbox Code Playgroud)
然后对包含内容vectorA并将其vectorB压缩为单个向量的向量进行排序:
// vectorC[i] is vectorA[i] and vectorB[i] combined
vector<ExampleStruct> vectorC;
Run Code Online (Sandbox Code Playgroud)
这似乎不是一个理想的解决方案.还有其他选择,特别是在C++ 11中吗?