12.7. The printDeck
function¶
Whenever you are working with vectors, it is convenient to have a function that prints the contents of the vector. We have seen the pattern for traversing a vector several times, so the following function should be familiar:
void printDeck (const vector<Card>& deck) {
for (size_t i = 0; i < deck.size(); i++) {
deck[i].print ();
}
}
By now it should come as no surprise that we can compose the syntax for vector access with the syntax for invoking a function.
Since deck
has type vector<Card>
, an element of deck
has
type Card
. Therefore, it is legal to invoke print
on
deck[i]
.
A Euchre Deck contains 9’s, 10’s, Jacks, Queens, Kings, and Aces of all four suits.
Modify the buildDeck
function below to create a Euchre deck. The printDeck
function will allow you to verify that you have done this correctly.
Hopefully you took some time to try and figure out the code yourself. The solution below is just one of several correct solutions for creating the Euchre deck:
vector<Card> buildEuchreDeck() {
vector<Card> deck (24);
int i = 0;
for (int suit = 0; suit <= 3; suit++) {
for (int rank = 1; rank <= 13; rank++) {
if (rank == 1 || rank >= 9){
deck[i].suit = suit;
deck[i].rank = rank;
i++;
}
}
}
return deck;
}