Я предполагаю, что вы не понимаете семантику перемещения. Если вы должны сохранить свои старые данные принадлежащими старому месту, нет никакой возможности использовать семантику перемещения. Переместить семантику означает переместить данные из старого в новое.
Дополнительное время по Гринвичу 18: 50
#include <iostream>
#include <vector>
#include <cstdlib>
#include <ctime>
#include <cstdint>
int main()
{
std::srand(std::time(nullptr));
const int LEN_SHAPE = 1024;
std::vector<double> a;
int n = LEN_SHAPE;
while (n--)
{
a.push_back( ((double)std::rand() / RAND_MAX) * std::numeric_limits<double>::max() );
}
std::vector<double> newData(a.size(), 0);
std::vector<double> oldData( std::move( a ));
std::copy(oldData.begin(), oldData.end(), newData.begin());
}
std :: vector oldData (std :: move (a)); - это семантика перемещения, проверьте после этого, что остается в векторе a .