Переместить семантику для перемещения данных из одного вектора в другой - PullRequest
0 голосов
/ 30 марта 2020

Если у меня есть вектор std::vector<int64_t> oldData, могу ли я использовать семантику перемещения для перемещения данных в другой вектор std::vector<uint8_t> newData.

Вместо выполнения:

std::vector<uint8_t> newData(oldData.begin(),oldData.end()); 

Могу ли я сделать

std::vector<uint8_t> newData = std::move(oldData);

Будет ли это на самом деле перемещать данные вместо их копирования и быть более производительным?

1 Ответ

1 голос
/ 30 марта 2020

Нет. Если вы тщательно обдумаете это, это невозможно - вы преобразуете массив из 64-битных целых в массив из 8-битных, поэтому вам придется выделить новое пространство для нового массива (в 8 раз меньше), а затем скопировать наименьшее 8 значащих бит каждого целого в старом массиве.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...