gpt4 book ai didi

c++ - 使用 C++98 将 vector 的一部分 move (而不是复制)到另一个 vector

转载 作者:搜寻专家 更新时间:2023-10-31 02:07:32 31 4
gpt4 key购买 nike

在 C++11 中,我们可以执行以下操作:

std::vector<int> A(n);
std::vector<int> B;
// I want to move part of A (from A[start] to A[end]) to B
std::move(A.begin()+start,A.begin()+end,std::back_inserter(B));
// in C++98 there is no move operator, so use copy (assign)
B.assign(A.begin()+start, A.begin()+end);

在 C++98 中有没有什么方法可以做类似于 C++11 实现的事情。目标是节省时间并使用 move 而不是复制 vector ,您有什么想法吗?

在实际代码中,我没有使用int,它是object的vector。

最佳答案

不幸的是, move 语义在 C++98 中不可用,(因为它们是在 C++11 中引入的),但对于给出的示例, move 整数与复制它们没有太大区别,因此实际性能差异如果有的话,应该可以忽略不计。

关于c++ - 使用 C++98 将 vector 的一部分 move (而不是复制)到另一个 vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48523144/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com