Итак, я пытаюсь просто распечатать содержимое вектора, который я создаю. По сути, я пытаюсь вывести игрока, который будет int (т.е. 1-4), и руку игрока, состоящую из объектов Card. Так, например, я пытаюсь сделать так, чтобы newPlayerHand[1][1] выдавал мне «Пиковый туз», а newPlayerHand[1][2] выдавал «Валет треф».
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;
}