输出对象的多维向量
Output Multidimensional Vector of Objects
所以,我试图简单地打印我正在创建的矢量的内容。从本质上讲,我试图输出玩家的int值(即1-4)和玩家的手牌(由Card对象组成)。例如,我想让newPlayerHand[1][1]输出"黑桃a",而newPlayerHand[1][2]输出"梅花j"
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];
}
}
}
上面的代码在逻辑上看起来和听起来都是正确的,但是当我尝试
时,它给了我错误"No such operator <<"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;
}
你的问题不在于vector。就是这行代码
cout << newPlayerHand[i][j];
执行上述步骤时,要输出的对象为数据类型card。"<<" ostream操作符知道如何显示基本数据类型,而不是我们创建的数据类型。因此,为它提供适当的结构来输出card数据类型的值,您就可以继续了。
相关文章:
- 找不到成员对象:没有名为get_event()的成员,也处理多态性和向量
- 迭代时从向量和内存中删除对象
- 如何为模板化对象创建模板向量?VS正在投掷C3203
- 为什么我不能将一个对象push_back到属于另一个类的对象向量中?
- 如何创建从同一类继承的不同对象的向量
- 在nlohmann json中,如何将嵌套对象的数组转换为嵌套结构的向量
- 从多个源构造一个对象,包括一个对象向量
- 在C 中,是否有可能在不兼容类型的std ::向量对象之间传输不同类型的缓冲区
- 将向量对象存储在共享指针投掷错误中
- E0312,C2664尝试将向量对象作为函数参数传递时错误
- 相对于向量对象的两个成员,找到两个向量的相交的有效方法
- 将数据从文件读取到向量对象
- C 向量对象访问
- 向量对象声明后的括号是什么意思
- 2向量对象指向相同的分配内存
- 如何返回向量对象
- 传递单个或向量对象时没有重载函数的实例
- 指向数组和向量对象的指针
- 向量对象库,可以存储其他对象类型的对象
- 如何从另一个向量/对象集构造新的向量/指针集