我有两个STL向量A
和B
,我想清除A
的所有元素并将B
的所有元素移动到A
中,然后清空B
。简单来说,我想做到这一点:
std::vector<MyClass> A;
std::vector<MyClass> B;
....
A = B;
B.clear();
由于B
可能很长,执行此操作需要k*O(N)
的时间,其中k
是常量,N
是max(size_of(A), size_of(B))
。我想知道是否有更有效率的方法。我能想到的一件事是将A
和B
定义为指针,然后在常数时间内复制指针并清除B
。
B
已经为空,因此B.clear()
不会有任何作用。是的,你仍然可以使用这个vector,只不过它是一个空的vector。 - mfontanini*this
的大小成线性关系。 - mfontanini