这就是我通过map定义的方式。C++ STL map,std :: pair作为密钥
std::map<std::pair<std::string,std::string>, int> edMap;
我很困惑如何插入值,我总是收到编译错误。 这就是我试图插入的方式。
std::pair<std::string,std::string> key;
edMap.insert(key,d);
编译错误是
1>------ Build started: Project: spellsuggest, Configuration: Debug Win32 ------
1>Compiling...
1>breathalyzer.cpp
1>d:\personal\spellsuggest\spellsuggest\breathalyzer.cpp(70) : error C2664: 'std::_Tree<_Traits>::iterator std::_Tree<_Traits>::insert(std::_Tree<_Traits>::iterator,const std::pair<_Ty1,_Ty2> &)' : cannot convert parameter 1 from 'std::pair<_Ty1,_Ty2>' to 'std::_Tree<_Traits>::iterator'
1> with
1> [
1> _Traits=std::_Tmap_traits<std::pair<std::string,std::string>,int,std::less<std::pair<std::string,std::string>>,std::allocator<std::pair<const std::pair<std::string,std::string>,int>>,false>,
1> _Ty1=const std::pair<std::string,std::string>,
1> _Ty2=int
1> ]
1> and
1> [
1> _Ty1=std::string,
1> _Ty2=std::string
1> ]
1> and
1> [
1> _Traits=std::_Tmap_traits<std::pair<std::string,std::string>,int,std::less<std::pair<std::string,std::string>>,std::allocator<std::pair<const std::pair<std::string,std::string>,int>>,false>
1> ]
1> No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
1>Build log was saved at "file://d:\personal\spellsuggest\spellsuggest\Debug\BuildLog.htm"
1>spellsuggest - 1 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
为了将来的参考,当您就Stack Overflow提出提及编译器错误的问题时,请务必将实际的编译器错误消息逐字地包含(即复制并粘贴)到您的文章中。我们是人类,而不是编译器。 – 2011-06-16 12:23:35
与问题绝对没有关系 - 但我对一个名为“spellsuggest”的项目(?)内名为“breathalyzer.cpp”的文件很感兴趣。 – Chowlett 2011-06-16 12:33:05
@Chowlett :)从一些东西开始,现在开始。小傻瓜。 – Avinash 2011-06-16 12:36:44