2010-11-21 146 views
0

我想使用我自己創建的特殊Card類製作一堆卡片。如何在C++中將矢量元素複製到堆棧

現在我想要做的是: 我想要堆棧中的卡片以方便以後使用,但卡片必須進行洗牌,而這在堆棧上是不可能的。

下面的代碼

Card dummyCard; 
vector<Card> dummyVector; 
initializeCards(dummyVector, dummyCard, 5); /* this function puts cards in vector */ 
random_shuffle(dummyVector.begin(), dummyVector.end()); 
copy(dummyVector.begin(), dummyVector.end(), cardPile); /* cardPile is a stack */ 

如何使這項工作任何想法? 或者我應該只保留矢量作爲我的替代堆棧?並使用pop_back和push_back?

回答

1

這是怎麼回事?

#include <stack> 
#include <vector> 
using namespace std; 

int main() 
{ 
    vector<int> x; 
    x.push_back(10); x.push_back(20); x.push_back(30); 

    stack< int,vector<int> > stack(x); 

    return 0; 
} 
+0

你打我吧! – Contango 2010-11-21 23:04:59

1

你可以通過矢量迭代,推動元素一個接一個

for (vector<Card>::iterator i = dummyVector.begin(); i != dummyVector.end(); i++) { 
    cardPile.push(*i); 
}