I wanted to do this
#include <vector>
#include <span>
struct S
{
std::vector<int> v;
void set(std::span<int> _v)
{
v = _v;
}
};
But it does not compile. What are the alternatives?
I wanted to do this
#include <vector>
#include <span>
struct S
{
std::vector<int> v;
void set(std::span<int> _v)
{
v = _v;
}
};
But it does not compile. What are the alternatives?
v.assign(_v.begin(), _v.end());
You can also use the std::vector::insert
as follows:
v.insert(v.begin(), _v.begin(), _v.end());
Note that, if the v
should be emptied before, you should call v.clear()
before this. However, this allows you to add the span to a specified location in the v
.