如何用同样的方法对两个向量进行排序,使用只使用其中一个向量的准则?
例如,假设我有两个大小相同的向量:
vector<MyObject> vectorA;
vector<int> vectorB;
然后使用一些比较函数对 vectorA
进行排序。那次分类重新排序了 vectorA
。我怎样才能有相同的重新排序应用到 vectorB
?
一种选择是创建一个 struct:
struct ExampleStruct {
MyObject mo;
int i;
};
然后将包含 vectorA
和 vectorB
内容的向量分类为一个单独的向量:
// vectorC[i] is vectorA[i] and vectorB[i] combined
vector<ExampleStruct> vectorC;
这似乎不是一个理想的解决方案。还有其他选择吗,特别是在 C + + 11中?