2010-11-21 19 views
0

Je veux créer une pile de cartes en utilisant une classe de cartes spéciale que j'ai créée moi-même.Comment copier des éléments d'un vecteur dans une pile en C++

Maintenant, ce que je veux faire est: Je veux que les cartes soient empilées pour une utilisation ultérieure plus facile, mais les cartes doivent être mélangées et ce n'est pas possible sur une pile.

est ici le code

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 */ 

Toute idée sur la façon de faire ce travail? Ou devrais-je simplement conserver le vecteur comme substitut à la pile? et utilisez pop_back et push_back?

Répondre

1

Que pensez-vous de cela?

#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

Vous me devança! – Contango

1

Vous pouvez itérer le vecteur et pousser les éléments un par un

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