我正在处理一些相对较大的整数向量,并且我有一个顶级向量,我需要将其他(临时)向量的结果累积到其中。
遗憾的是,扩展它不是一个选择,因为我收到了从另一个 API 预先制作的临时向量,并且出于同样的原因我被 GCC 4.1.2 困住了,所以没有任何好的移动语义或 std::move C++11。
目前我正在使用插入进行复制,例如:
vector<int> accumulator;
for(){
vector<int> tempVector = vectReturningFunction();
...
if(!tempVector.empty()){
accumulator.insert(accumulator.end(), tempVector.begin(), tempVector.end());
}
}
由于 temp 通常是一次性的,并且数据可能足够大,我希望能够移动而不是复制,但我无法找到一种优雅的方式来做到这一点。
任何解决方案,甚至只是指向有用方向的指针(没有双关语)都将不胜感激。我也有一个模糊的记忆,多年前阅读 Stroustrup pre C++11 的食谱,以跨 STL 容器移动,但是这些天周围有很多 C++11 的东西,没有提供多少搜索服务。
谢谢。