Jan*_*ora 1 c++ sorting vector c++11
我有以下向量:
vector<unsigned> vec = {5, 6, 5, 4, 1, 3, 0, 4}
Run Code Online (Sandbox Code Playgroud)
现在我想用奇数索引按字典顺序对这个向量进行排序(如果奇数索引相等,那么偶数索引).这样排序的矢量"vec"是:
{0, 4, 1, 3, 5, 4, 5, 6}
Run Code Online (Sandbox Code Playgroud)
我知道std :: sort将完全排序"vec".是否可以使用std :: sort有选择地对向量进行排序.同样适用于std :: lower_bound.是否可以仅使用奇数索引找到lower_bound.
我想要与对矢量相同的效果.出于效率原因,我不将vec存储为对的向量.
使用range-v3,您可以:
std::vector<unsigned> vec = {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);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
190 次 |
| 最近记录: |