【发布时间】:2010-11-30 18:14:15
【问题描述】:
是否可以将矢量内容的所有权从一个矢量转移到另一个矢量?
vector<T> v1;
// fill v1
vector<T> v2 = OvertakeContents(v1);
// now v1 would be empty and v2 would have all the contents of v1
具有拼接功能的列表是可能的。 对于整个向量,这在恒定时间内也应该是可能的。
如果不是,那为什么不呢?
【问题讨论】:
-
旁注:“swap”已经被提及。但我想补充一点,在 C++0x 中,你可以简单地将“OvertakeContents”替换为“std::move”,它会做你想做的事。