【发布时间】:2018-07-09 10:34:02
【问题描述】:
在 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 实现的事情。 目标是节省时间并使用移动而不是复制向量,您有什么想法吗?
在实际代码中,我没有使用int,它是对象的向量。
【问题讨论】:
-
澄清一下,真实代码是否也使用
ints?如果是这样,向量的移动部分与复制没有什么不同。 -
c++98没有移动语义...但是对于您的示例,移动int相当于复制它。 -
@HolyBlackCat ,在实际代码中它不是 int .... 它是一个对象
标签: c++ vector move-semantics c++98