有std::vector<char> fromBlock10^9 个元素。
还有一个空的,你需要std::vector<char> toBlock
尽快将数据传输fromBlock到toBlock,同时清除它fromBlock。
这很复杂,因为这个操作必须在一个只有一个指针的函数中执行fromBlock,并且还存在于函数内部toBlock(在其中创建和销毁)。
例子:
int main(){
std::vector<char> fromBlock;
... // Здесь заполняем fromBlock
сonvert(&fromBlock);
}
void convert(std::vector<char>* fromBlock){
std::vector<char> toBlock;
...// Здесь как-то и должно произвестись переменщение
}
实际上,如何将数据从一个向量传输到另一个向量?
PS
了解一下
std::move
,但并没有特别了解它是如何工作的以及是否有替代方案。
谢谢@JohnnyCatsville
可以使用
std::swap- 适用于常数您也可以使用
std::move- 也适用于常量区别在于:
查看工作差异的代码
https://ideone.com/OmEjbl