ดังนั้นฉันจึงพยายามพิมพ์เนื้อหาของเวกเตอร์ที่ฉันกำลังสร้าง โดยพื้นฐานแล้วฉันกำลังพยายามส่งออกผู้เล่นซึ่งจะเป็น int (เช่น 1-4) และมือของผู้เล่นซึ่งประกอบด้วยวัตถุไพ่ ตัวอย่างเช่น ฉันกำลังพยายามทำให้ถึงจุดที่ newPlayerHand[1][1] จะให้ "Ace of Spades" แก่ฉัน และ newPlayerHand[1][2] จะส่งออก "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];
}
}
}
โค้ดด้านบนดูและเสียงถูกต้องสำหรับฉัน แต่มันทำให้ฉันมีข้อผิดพลาด "ไม่มีตัวดำเนินการดังกล่าว ‹‹" เมื่อฉันพยายาม
cout << newPlayerHand[i];
คำแนะนำหรือเคล็ดลับใด ๆ เกี่ยวกับสิ่งที่ฉันทำผิดที่นี่จะได้รับการชื่นชมอย่างมาก
ตกลง ฉันได้แก้ไขมันเพื่อรองรับโอเปอเรเตอร์ ostream แล้ว แต่ดูเหมือนว่าฉันยังคงได้รับข้อผิดพลาดจากภายนอกที่ยังไม่ได้รับการแก้ไข (basic_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;
}