C++ 如何迭代到类型:mimeType

C++ 如何迭代到类型:mimeType,c++,C++,嗨,我在ORTB中有一个mimeType,但无法通过编译,是否有迭代banner.mimes并将其转换为字符串的方法 cerr << "banner.mimes:" << banner.mimes.empty() << endl; if (!banner.mimes.empty()){ for(auto & mime : banner.mimes) { cerr << "banner.mime:" << m

嗨,我在ORTB中有一个mimeType,但无法通过编译,是否有迭代banner.mimes并将其转换为字符串的方法

cerr << "banner.mimes:" << banner.mimes.empty() << endl;
if (!banner.mimes.empty()){
    for(auto & mime : banner.mimes) {
       cerr << "banner.mime:" << mime << endl;
       std::vector<ORTB::MimeType> mimes;
       mimes.push_back(mime.toString());
       ctx.br->segments.add("mimes", mimes);
    }
}
它说:错误:无法将–std::basic_ostream–左值绑定到–std::basic_ostream&&
/usr/include/c++/4.6/ostream:581:5:错误:在第5行初始化–std::basic_ostream&std::operator的参数1您正在声明一个mime向量,因此第6行应该是mimes.push_back mime,或者如果您希望该向量包含字符串,则应将第5行更改为std::vector。请注意,对mime.toString的调用要求toString是ORTB::MimeType的成员


对于涉及ostream运算符1的错误。if是完全冗余的。2.这个错误不是来自迭代,而是来自cerr,我注释掉了for循环中的每一行,但是同样的错误。ORTB::MimeType来自object Banner,我只需要一种方法来获取对象并将其转换为字符串。我将它放在结构中,它说:error:std::ostream&ORTB::MimeType::Operator该结构很简单,我添加到字符串:struct-MimeType{MimeTypeconst::string&type=:typetype{}//将std::string添加到字符串常量{return std::stringtype;}std::string type;//int val;}@DavidChange这是我的错:对于成员函数,MimeType的第二个参数是隐式的。我已经修正了这个例子。在对这个问题进行更多思考之后,我认为最好使用选项2,在结构之外(可能在结构的定义之下)定义它。原因是成员函数没有完全扩展ostream运算符,但在结构外部定义它会有帮助。@LanM它是一个.h文件,我把它放在结构外部,在其他类中有很多其他错误,它是如何导致的?你在结构中没有第二个参数的情况下修复的那个在哪里?@LanM它是一个.h文件,我在ostream中输出什么?
namespace ORTB {
    class MimeType {
    // Class definition...
    public:
    std::ostream& operator<< (std::ostream& stream) {
    // output MimeType's information here: return stream << Value1 << Value2...; 
    }
}
    std::ostream& operator<< (std::ostream& stream, const MimeType& mt) {
    // output MimeType's information here: return stream << mt.Value1 << mt.Value2...; 
    }