5

Range-v3 具有ranges::views::dropranges::views::drop_last从视图的前面或后面删除元素。

它是否提供类似的功能来将元素添加到视图中?

目前,我发现的最短方法是使用 a或 a到concat范围/容器:iotasingle

#include <assert.h>
#include <range/v3/view/iota.hpp>
#include <range/v3/view/concat.hpp>
#include <range/v3/to_container.hpp>

using namespace ranges;
using namespace views;
int main() {
    std::vector<int> v{1,2,3};

    auto wi = concat(iota(0,1),v);
    assert(((wi | to_vector) == std::vector<int>{0,1,2,3}));

    auto ws = ranges::views::concat(single(0), v);
    assert(((ws | to_vector) == std::vector<int>{0,1,2,3}));
}
4

0 回答 0