-4

这个问题没有意义,想删除它,因为stackoverflow不允许我正确地改写它以供将来参考。

我正在尝试编写一个游戏,该游戏需要在棋盘上的 8 个孔中每个孔 4 个弹珠。要开始游戏,必须选择一个洞并与其余洞顺时针分享弹珠。我想用向量来表示板上的每个孔(“这根本不是聪明的方法,因为现在看它我会只用一个向量来表示孔!!!我非常然后是 C++ 的新手。”)。

Hole1是一个用 4 个弹珠元素填充的向量。// GameMar 它的游戏弹珠。

标准::向量 TempV; //代表一只手帮助移动大理石“根本没有必要”

//因为我要共享Hole1中的所有弹珠,所以我决定将所有弹珠移动到TempV中,这将使Hole1 为空,而Hole2Hole3Hole4Hole5每个将有 5 个marles。

TempV = std::move(Hole1); //("我本可以使用Hole1并将弹珠弹到其他孔上")

问题是我如何能够在其他洞中分享大理石?

4

1 回答 1

1

将最后一个元素从 移动TempVHole2

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

或者,使用复制构造函数:

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

TempV.size() > 0显然,您需要在尝试此操作之前进行检查。

坦率地说,move考虑到您似乎正在处理指针,这可能是矫枉过正。

于 2013-08-01T18:29:58.753 回答