I wouldn't go with random. You could still do what elad said. You can do card.suit = suit, you just need to make card be the new card (pointer you're pushing). I vouched for using the constructor to.. construct the card. Something like this:
Code:
for(int i = 0; i < DECKS; ++i)
{
//declare "deck" here
for(int j = 0; j < 4; ++j) //control suit
{
for(int k = 0; k < 13; ++k) //control value
{
//j is the suit, k is the val, k % 13 is the face
deck.push(new Card(k, j, k % 13));
}
}
//push "deck" to a list of decks here
}
Code:
Card::Card(int p_val, int p_suit, int p_face)
{
val = p_val;
suit = p_suit;
face = p_face;
points();
counters[val]++;
}
Don't know what deck is, so I had to put comments on what it means to do.