我在C++中創建一個包含整型鍵的映射,並且該值是類User的對象。我能夠將對象插入下面的代碼地圖 -在包含類對象的C++中迭代映射
std::map<std::string,User>::iterator it = usermap.begin();
usermap.insert (it, std::pair<string,User>(object.userid,object));
的代碼,我用寫在.bin文件的對象是 -
map<std::string, User>::iterator it;
for (it = usermap.begin(); it != usermap.end(); it++)
{
myfile2 << "Object:" << it->second << "\n";
}
但我的錯誤越來越當我嘗試運行的代碼 - 包括來自/usr/include/c++/4.8.2/iostream:39:0, 從a3part2_5.cpp
在文件中:2: /usr/include目錄/c++/4.8.2/ostream:548:5:note:template std :: basic_ost令&的std ::操作< <(STD :: basic_ostream &,const的無符號字符*) 操作< <(basic_ostream & __out,const的無符號字符* __s) ^ /usr/include/c++/4.8.2/ostream :548:5:note:template argument deduction/substitution failed: a3part2_5.cpp:90:31:note:can not convert'it.std :: _ Rb_tree_iterator < _Tp> :: operator->,User>>() - > std :: pair,User> :: second'(type'User')鍵入'const unsigned char *' myfile2 < <「Obejct:」< < it-> second < <「\ n」;
解決錯誤的任何解決方案?
我的用戶類定義爲 -
class User
{
public:
string userid; string uid; string gid; string gecos; string directory; string shell;
User() {}
};
貴'User'類有一個重載的'操作符<<'您試圖打電話? – VTT
我很確定它不是。 –