2013-08-01 66 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

相關問題