class Obj{
public:
int x;
string y;
};
vector<Obj> a(100);
vector< vector<Obj> > b(10);
for(int i=0; i<b.size(); i++){
for(int j=0; j<b[i].size(); j++)
cout << b[i][j];
cout << endl;
}
错误信息:
D:\main.cpp:91:错误:与“operator<<”不匹配(操作数类型为“std::ostream{aka std::basic_ostream}”和“__gnu_cxx::__alloc_traits>::value_type{aka Obj}”)cout<
您的问题与向量无关,而是与将某个用户定义类型obj
的对象发送到标准输出有关。当您使用运算符<<将对象发送到输出流时:
cout << b[i][j];
流不知道如何处理它,因为12个重载中没有一个接受用户定义的类型obj
。您需要为您的类obj
重载运算符<<
:
std::ostream& operator<<(std::ostream& os, const Obj& obj) {
os << obj.x << ' ' << obj.y;
return os;
}
甚至obj
s的向量:
std::ostream& operator<<(std::ostream& os, const std::vector<Obj>& vec) {
for (auto& el : vec) {
os << el.x << ' ' << el.y << " ";
}
return os;
}
如何将的内容打印到屏幕? 实现以下< code >运算符的解决方案 以下是我目前所拥有的,没有单独的功能:
我试图使用“cout”将一个整数向量打印到终端,但是在编译过程中我得到一条错误消息: 没有“运算符”的匹配项 代码片段如下所示: 给向量赋值没有错误,只有代码的“cout”部分出错
这是我在一个俄文网站上得到的代码,我曾尝试使用pair函数,但所有的尝试都失败了。请指导我如何做到这一点。
我试图打印每个单词的第一个字符放入一个二维数组。我得到一个错误,当我试图打印它的子串。 我得到一个不可编译的源代码错误。
我正在使用push_back()函数插入这些元素,我想知道 我如何打印向量c的内容? 我尝试过
问题内容: 我对二维数组有问题。我有这样的显示: 我基本上想要显示为: 这是我的代码: 问题答案: 输出量 当然,您可以像其他答案中提到的那样交换7和5,以获得每行7。