中使用char*作为键
错误:
/opt/x11r6/lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.2/../../include/g++-3/stl_pair.h:在方法"pair::pair(const char(&)[10],const stroke_plan::contact_details&)"中:/opt/x11r6/lib/gcc lib/sparc-sun-solaris2.5.1/2.95.2/../../include/g++-3/stl_pir.h:68:从`make_pair(const char(&)[10],const stroke_plan::contact_details&)'实例化sonu.cpp:142:从这里实例化/opt/x11r6/lib/gcc lib/sparc-sun-solaris2.5.1/2.95.2/../../include/g++-3/stl_pir.h:44:将"const char[10]"分配给"char[10]'时的不兼容类型/opt/x11r6/lib/gcc lib/sparc-sun-solaris2.5.1/2.95.2/../../../include/g++-3/stl_pair.h:在方法"pair::pair(const pair:)"中:sonu.cpp:142:从这里实例化/opt/x11r6/lib/gcc lib/sparc-sun-solaris2.5.1/2.95.2/../../include/g++-3/stl_pair.h:48:从"const char*"分配给"char*const"将丢弃限定符
if(it == my_map.end())
{
log_file<<"updateFile()::updating new Customer with : "<<UID<<":"<<temp.c_name<<" : "<<temp.j_count<<endl;
my_map.insert(std::make_pair(UID,temp));
myfile.write(UID,sizeof(UID));//<<UID<<":"<<c_name<<endl;
myfile.write(reinterpret_cast<char *>(&temp),sizeof(temp));
}
这很难回答,因为您没有发布任何源代码。但您似乎试图使用char数组作为映射的键。这是行不通的。请改用std::string
。
std::map<std::string,journey_plan::contact_details>
编辑:您可以使用char数组作为键,遵循以下问题:在std::map