相关疑难解决方法(0)

C++ STL map,std :: pair作为键

这就是我通过map定义的方式.

std::map<std::pair<std::string,std::string>, int>  edMap;
Run Code Online (Sandbox Code Playgroud)

我对如何插入值感到困惑,我总是遇到编译错误.这就是我试图插入的方式.

    std::pair<std::string,std::string> key;
    edMap.insert(key,d);
Run Code Online (Sandbox Code Playgroud)

编译错误是

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, …
Run Code Online (Sandbox Code Playgroud)

c++ stl

4
推荐指数
1
解决办法
3万
查看次数

标签 统计

c++ ×1

stl ×1