std::vector和std::array存储在存储器的连续块他们的数据。假设我有
class T; // A movable class
T t;
std::vector<T> vec;
vec.push_back(t);
std::array<T,1> arr;
Run Code Online (Sandbox Code Playgroud)
假设如上所述,我保证知道vec并且arr具有相同的长度。有没有一种方法可以让我移动 vec到array而不是用 复制它std::copy(vec.begin(), vec.end(), arr.begin())?
eer*_*ika 11
您不能移动矢量。但是您可以移动向量的每个元素:
std::move(vec.begin(), vec.end(), arr.begin());
Run Code Online (Sandbox Code Playgroud)