所以,我试图简单地打印我正在创建的向量的内容。本质上,我试图输出一个int(即1-4)的玩家和由卡片对象组成的玩家的手。因此,例如,我试图让它 newPlayerHand[1][1] 将给我“黑桃 A”,而 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;
}