【发布时间】:2021-10-28 18:14:44
【问题描述】:
我会写:
my_range | ranges::views::remove(3)
使用范围-v3 库,从范围my_range 中删除等于 3 的元素。这也可以在 C++20 中使用
my_range | std::views::filter([](auto const& val){ return val != 3; })
但是 - 如何删除 my_range 中 位置 3 处的元素,将元素保留在位置 0、1、2、4、5 等?
【问题讨论】:
-
我对您的问题进行了相当戏剧性的编辑,以简化它。如果您不喜欢,请随时撤消更改...
-
@einpoklum 您添加的 [remove] 标签当前正在被烧毁,实际上meta.stackoverflow.com/questions/408573
-
@einpoklum
std::ranges::remove是一种算法,而不是范围适配器——正如你可以从它不在views::中的事实看出的那样 -
@Barry:对……但它仍然存在。也许它也应该在问题中提及?
标签: c++ c++20 range-v3 std-ranges