functional(86): error C2784

在定义聊天框onclose句柄的时候,清除map中部分内容,使用erase,发现会出现编译错误:

xxxxxinclude\functional(86) : error C2784: 'bool __cdecl std::operator <(const class std::multimap<_K,Ty,_Pr,_A> &,const class std:: multimap<_K,_Ty,_Pr,_A> &)': could not deduce template argument for ' const class std::multimap<_K,_Ty,_Pr,_A> &' from 'const class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char>>'

.......

想了很多解决办法,以为是使用了泛型算法而没有添加各种头文件,比如algorithm,甚至functional,都无法解决问题

后来发现map中的key是默认以less<>序升序排列的,也就是说key本身要支持operator<,所以需要添加string头文件,大抵是因为里面包含了string类的各种操作

posted @ 2012-12-20 17:27  jefffyang  阅读(1289)  评论(0编辑  收藏  举报