我需要將std::vector
放入std::stack
。如何用std向量初始化std棧?
這裏是我的方法,到目前爲止,(我建立一個紙牌遊戲):
void CardStack::initializeCardStack(std::vector<Card> & p_cardVector) {
m_cardStack = std::stack<Card>();
//code that should initialize m_cardStack with p_cardVector
}
注:我不能改變我的方法簽名,因爲它是由老師規定...
待辦事項我必須遍歷整個向量?什麼是最有效的方法來做到這一點? documentation。
我試過Jens的答案,但它沒有奏效。
無論是路過常量參考向量,因爲它沒有得到修改,或值和內容移動到堆棧。最後的版本允許編譯器在相同的情況下生成更高效的代碼。 – Jens
'std :: stack <....>'是什麼?默認情況下,'stack'使用'deque',而不是'vector'作爲其底層容器。 –
看我的編輯。我添加了更多上下文。 – AlexB