2013-08-01 67 views
-4

我正在尝试编写一个游戏,以下是我需要帮助的内容。将元素从一个向量移动到另一个向量C++

Hole1是一个充满了4个元素的对象。

std::vector<GameMar*> TempV; 
TempV = std::move(Hole1); 

TempV是空的,所以我所有从Hole1的元素移动到TempV这意味着矢量现在有4个元素,而Hole1具有零。

有一个叫Hole2这也是充满了4种元素的另一种载体,但我只想要仅有1个元素添加从TempVHole2,这意味着Hole2将有5个元素,而TempV将有3个要素。

另一个叫做Hole3的载体也填充了4个元素。它会增加,这将变为5,直到TempV为零。

+4

请张贴代码而不是试图描述它。你的问题真的很难理解。在[编辑]中有一个帮助按钮,或者给它看看。 – Mat

+2

现在好点了吗?我不确定你在最后一段中的含义,请查看。 – jrok

+0

我试图添加代码来澄清,但后来我打到最后一段,并放弃:( –

回答

1

的最后一个元素,从移动到TempVHole2

Hole2.emplace_back(std::move(TempV.back())); 
TempV.pop_back(); 

另外,使用拷贝构造函数:

Hole2.push_back(TempV.back()); 
TempV.pop_back(); 

显然,你需要检查TempV.size() > 0尝试在此之前。

坦率地说,move可能是矫枉过正,因为你似乎在处理指针。

+0

那个....不会移动。'Hole2.emplace_back(std :: move(TempV.back()));'? –

+0

@MooingDuck - 当引用时,他没有*说*“移动” 'Hole2',但我会尽快更新它。 – Unsigned

相关问题