在我的主.cpp文件中,我有一个包含类型为 的元素的向量Band。Band是我implementation.cpp文件中结构的名称。我的主文件如下所示:
int main(int argc,char* argv[]){
std::vector<Band> bandsVec = readbandFile(argv[1]);
}
Run Code Online (Sandbox Code Playgroud)
我有.h这行代码的相应文件:
struct Band {
std::string bandName;
std::string listofMembers;
};
std::vector<Band> readbandFile(std::string a);
Run Code Online (Sandbox Code Playgroud)
在我的主文件中,我尝试使用以下增强for循环来打印矢量内容:
for (Band band: bandsVec) {
std::cout << band << " ";
}
Run Code Online (Sandbox Code Playgroud)
但是,我在使用的第一组<<运算符时遇到错误:
没有运算符“<<”匹配这些操作数——操作数类型是:std::ostream << Band
如何打印bandsVec矢量的内容?
您需要定义一个重载运算符std::ostream& operator<<(std::ostream&, const Band&);C++ 不知道如何自动打印任何旧结构。例如
std::ostream& operator<<(std::ostream& out, const Band& b)
{
return out << b.bandName << ' ' << b.listOfMembers;
}
Run Code Online (Sandbox Code Playgroud)
如果您知道如何解释它,那么您收到的错误消息就会准确地告诉您问题是什么。