我正在研究结构,遇到了这个问题。
#include<iostream>
#include<string>
#include<vector>
using namespace std;
struct entry
{
string name;
int number;
};
int main()
{
vector<entry> adres{{"Noname",212345},{"Yesname",7564745}};
for(x:adres)
{
cout<<x<<endl;
}
}
这只是一个测试代码!
因此,我创建了一个结构,并希望在我的载体中使用它。 C ++给了我这个错误
error: no match for 'operator<<' (operand types are 'std::ostream {aka std::basic_ostream<char>}' and 'entry')|
经过一番搜索,我发现我需要重载<<运算符以输出具有定义的数据类型的Vector。
我的问题是我该怎么做?如何重载“ <<”,以便输出向量。我知道运算符重载的概念,但这似乎太令人困惑了。 有什么办法可以使用“ <<”符号输出用户定义的类型?
答案 0 :(得分:2)
您可以像这样重载<<
运算符。
std::ostream& operator<<(std::ostream& out, const entry& e) {
out << "Name: " << e.name << ", Number: " << e.number;
return out;
}