5

我想这样做

#include <vector>
#include <span>

struct S
{
    std::vector<int> v;
    void set(std::span<int> _v)
    {
        v = _v;
    }
};

但它不编译。有哪些替代方案?

4

2 回答 2

7
v.assign(_v.begin(), _v.end());
于 2020-09-01T10:49:03.770 回答
3

您还可以使用std::vector::insert如下:

v.insert(v.begin(), _v.begin(), _v.end());

请注意,如果v之前应该清空,您应该v.clear()在此之前调用。但是,这允许您将跨度添加到v.

见演示

于 2020-09-01T12:26:58.663 回答