0
所以,我試圖簡單地打印我創建的矢量的內容。基本上我試圖輸出一個可以是int的玩家(即1-4)和由Card對象組成的玩家手牌。因此,例如,我試圖讓它達到newPlayerHand [1] [1]會給我「黑桃王牌」的地步,而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;
}