我有以下向量:
vectorvec = {5, 6, 5, 4, 1, 3, 0, 4}
现在我想用奇数索引按字典顺序对这个向量进行排序(如果奇数索引相等,那么偶数索引).这样排序的矢量"vec"是:
{0, 4, 1, 3, 5, 4, 5, 6}
我知道std :: sort将完全排序"vec".是否可以使用std :: sort有选择地对向量进行排序.同样适用于std :: lower_bound.是否可以仅使用奇数索引找到lower_bound.
我想要与对矢量相同的效果.出于效率原因,我不将vec存储为对的向量.
使用range-v3,您可以:
std::vectorvec = {5, 6, 5, 4, 1, 3, 0, 4}; auto pair_view = ranges::view::zip(vec | ranges::view::stride(2), vec | ranges::view::drop(1) | ranges::view::stride(2)); ranges::sort(pair_view);
演示