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;
}