我正在处理 C++ 20 中的最后 4 个,试图学习新的主要特性。尝试了一些与范围相关的网络代码,我写了:
std::vector ints{ 6, 5, 2, 8 };
auto even = [](int i) {
return 0 == i % 2;
};
// ranges...
auto rr = ints | std::views::filter(even)
| std::views::transform([](auto i) {
return i * i;
})
| std::views::reverse;
然后我会排序,就像 range-v3 一样|action::sort
,但我知道这个实现是不一样的。
我发现排序的方式是:
ints = std::vector(std::ranges::begin(rr), std::ranges::end(rr));
std::ranges::sort(ints);
我错了吗?有人知道如何用管道样式对视图进行排序吗?