Jadi, saya mencoba mencetak konten vektor yang saya buat. Pada dasarnya saya mencoba mengeluarkan pemain yang berupa int (yaitu 1-4) dan tangan pemain yang terdiri dari objek Kartu. Jadi, misalnya, saya mencoba mencapai titik di mana newPlayerHand[1][1] akan memberi saya "Ace of Spades", dan newPlayerHand[1][2] akan menampilkan "Jack of Clubs"
void Blackjack::deal()
{
// create a new hand
vector < vector < Card >> newPlayerHand;
for (int i = 0; i < numPlayers; i++)
{
vector < Card > player; // Create an empty row
for (int j = 0; j < 2; j++) {
player.push_back(dealCard()); // Add an element(column)
// to the row
newPlayerHand.push_back(player); // Add the row to the main vector'
cout << newPlayerHand[i][j];
}
}
}
Kode di atas terlihat dan terdengar benar secara logis bagi saya, tetapi kode tersebut memberi saya kesalahan "Tidak ada operator seperti itu ‹‹" ketika saya mencoba
cout << newPlayerHand[i];
Saran atau tip apa pun tentang kesalahan saya di sini akan sangat dihargai.
Oke, jadi saya sudah mengeditnya ke akun operator ostream, tapi sepertinya saya masih mendapatkan kesalahan untuk eksternal yang belum terselesaikan. (dasar_ostream)
template<typename T>
ostream& operator<<(ostream& os, const vector<T>& v)
{
copy(v.begin(), v.end(), std::ostream_iterator<T>(std::cout, " "));
return os;
}