map初始化为什么会出这样的错?
代码如下:
编译错误:
1>正在编译...
1>as.cpp
1>c:\program files (x86)\microsoft visual studio 9.0\vc\include\functional(143) : error C2784: “bool std::operator <(const std::_Tree<_Traits> &,const std::_Tree<_Traits> &)”: 无法从“const std::string”为“const std::_Tree<_Traits> &”推导 模板 参数
1> c:\program files (x86)\microsoft visual studio 9.0\vc\include\xtree(1466) : 参见“std::operator <”的声明
1> c:\program files (x86)\microsoft visual studio 9.0\vc\include\functional(142): 编译类 模板 成员函数“bool std::less<_Ty>::operator ()(const _Ty &,const _Ty &) const”时
1> with
1> [
1> _Ty=std::string
1> ]
1> c:\program files (x86)\microsoft visual studio 9.0\vc\include\map(68): 参见对正在编译的类 模板 实例化“std::less<_Ty>”的引用
1> with
1> [
1> _Ty=std::string
1> ]
1> c:\program files (x86)\microsoft visual studio 9.0\vc\include\xtree(22): 参见对正在编译的类 模板 实例化“std::_Tmap_traits<_Kty,_Ty,_Pr,_Alloc,_Mfl>”的引用
1> with
1> [
1> _Kty=std::string,
1> _Ty=int,
1> _Pr=std::less<std::string>,
1> _Alloc=std::allocator<std::pair<const std::string,int>>,
1> _Mfl=false
1> ]
1> c:\program files (x86)\microsoft visual studio 9.0\vc\include\xtree(63): 参见对正在编译的类 模板 实例化“std::_Tree_nod<_Traits>”的引用
1> with
1> [
1> _Traits=std::_Tmap_traits<std::string,int,std::less<std::string>,std::allocator<std::pair<const std::string,int>>,false>
1> ]
1> c:\program files (x86)\microsoft visual studio 9.0\vc\include\xtree(89): 参见对正在编译的类 模板 实例化“std::_Tree_ptr<_Traits>”的引用
1> with
1> [
1> _Traits=std::_Tmap_traits<std::string,int,std::less<std::string>,std::allocator<std::pair<const std::string,int>>,false>
1> ]
1> c:\program files (x86)\microsoft visual studio 9.0\vc\include\xtree(107): 参见对正在编译的类 模板 实例化“std::_Tree_val<_Traits>”的引用
1> with
1> [
1> _Traits=std::_Tmap_traits<std::string,int,std::less<std::string>,std::allocator<std::pair<const std::string,int>>,false>
1> ]
1> c:\program files (x86)\microsoft visual studio 9.0\vc\include\map(78): 参见对正在编译的类 模板 实例化“std::_Tree<_Traits>”的引用
1> with
1> [
1> _Traits=std::_Tmap_traits<std::string,int,std::less<std::string>,std::allocator<std::pair<const std::string,int>>,false>
1> ]
1> e:\projects\as\as.cpp(11): 参见对正在编译的类 模板 实例化“std::map<_Kty,_Ty>”的引用
1> with
1> [
1> _Kty=std::string,
1> _Ty=int
1> ]
1>c:\program files (x86)\microsoft visual studio 9.0\vc\include\functional(143) : error C2784: “bool std::operator <(const std::_Tree<_Traits> &,const std::_Tree<_Traits> &)”: 无法从“const std::string”为“const std::_Tree<_Traits> &”推导 模板 参数
1> c:\program files (x86)\microsoft visual studio 9.0\vc\include\xtree(1466) : 参见“std::operator <”的声明
1>c:\program files (x86)\microsoft visual studio 9.0\vc\include\functional(143) : error C2784: “bool std::operator <(const std::_Tree<_Traits> &,const std::_Tree<_Traits> &)”: 无法从“const std::string”为“const std::_Tree<_Traits> &”推导 模板 参数
1> c:\program files (x86)\microsoft visual studio 9.0\vc\include\xtree(1466) : 参见“std::operator <”的声明
1>c:\program files (x86)\microsoft visual studio 9.0\vc\include\functional(143) : error C2784: “bool std::operator <(const std::_Tree<_Traits> &,const std::_Tree<_Traits> &)”: 无法从“const std::string”为“const std::_Tree<_Traits> &”推导 模板 参数
1> c:\program files (x86)\microsoft visual studio 9.0\vc\include\xtree(1466) : 参见“std::operator <”的声明
1>c:\program files (x86)\microsoft visual studio 9.0\vc\include\functional(143) : error C2784: “bool std::operator <(const std::reverse_iterator<_RanIt> &,const std::reverse_iterator<_RanIt2> &)”: 无法从“const std::string”为“const std::reverse_iterator<_RanIt> &”推导 模板 参数
1> c:\program files (x86)\microsoft visual studio 9.0\vc\include\xutility(2236) : 参见“std::operator <”的声明
1>c:\program files (x86)\microsoft visual studio 9.0\vc\include\functional(143) : error C2784: “bool std::operator <(const std::reverse_iterator<_RanIt> &,const std::reverse_iterator<_RanIt2> &)”: 无法从“const std::string”为“const std::reverse_iterator<_RanIt> &”推导 模板 参数
1> c:\program files (x86)\microsoft visual studio 9.0\vc\include\xutility(2236) : 参见“std::operator <”的声明
1>c:\program files (x86)\microsoft visual studio 9.0\vc\include\functional(143) : error C2784: “bool std::operator <(const std::reverse_iterator<_RanIt> &,const std::reverse_iterator<_RanIt2> &)”: 无法从“const std::string”为“const std::reverse_iterator<_RanIt> &”推导 模板 参数
1> c:\program files (x86)\microsoft visual studio 9.0\vc\include\xutility(2236) : 参见“std::operator <”的声明
1>c:\program files (x86)\microsoft visual studio 9.0\vc\include\functional(143) : error C2784: “bool std::operator <(const std::reverse_iterator<_RanIt> &,const std::reverse_iterator<_RanIt2> &)”: 无法从“const std::string”为“const std::reverse_iterator<_RanIt> &”推导 模板 参数
1> c:\program files (x86)\microsoft visual studio 9.0\vc\include\xutility(2236) : 参见“std::operator <”的声明
1>c:\program files (x86)\microsoft visual studio 9.0\vc\include\functional(143) : error C2784: “bool std::operator <(const std::_Revranit<_RanIt,_Base> &,const std::_Revranit<_RanIt2,_Base2> &)”: 无法从“const std::string”为“const std::_Revranit<_RanIt,_Base> &”推导 模板 参数
1> c:\program files (x86)\microsoft visual studio 9.0\vc\include\xutility(2046) : 参见“std::operator <”的声明
1>c:\program files (x86)\microsoft visual studio 9.0\vc\include\functional(143) : error C2784: “bool std::operator <(const std::_Revranit<_RanIt,_Base> &,const std::_Revranit<_RanIt2,_Base2> &)”: 无法从“const std::string”为“const std::_Revranit<_RanIt,_Base> &”推导 模板 参数
1> c:\program files (x86)\microsoft visual studio 9.0\vc\include\xutility(2046) : 参见“std::operator <”的声明
1>c:\program files (x86)\microsoft visual studio 9.0\vc\include\functional(143) : error C2784: “bool std::operator <(const std::_Revranit<_RanIt,_Base> &,const std::_Revranit<_RanIt2,_Base2> &)”: 无法从“const std::string”为“const std::_Revranit<_RanIt,_Base> &”推导 模板 参数
1> c:\program files (x86)\microsoft visual studio 9.0\vc\include\xutility(2046) : 参见“std::operator <”的声明
1>c:\program files (x86)\microsoft visual studio 9.0\vc\include\functional(143) : error C2784: “bool std::operator <(const std::_Revranit<_RanIt,_Base> &,const std::_Revranit<_RanIt2,_Base2> &)”: 无法从“const std::string”为“const std::_Revranit<_RanIt,_Base> &”推导 模板 参数
1> c:\program files (x86)\microsoft visual studio 9.0\vc\include\xutility(2046) : 参见“std::operator <”的声明
1>c:\program files (x86)\microsoft visual studio 9.0\vc\include\functional(143) : error C2784: “bool std::operator <(const std::pair<_Ty1,_Ty2> &,const std::pair<_Ty1,_Ty2> &)”: 无法从“const std::string”为“const std::pair<_Ty1,_Ty2> &”推导 模板 参数
1> c:\program files (x86)\microsoft visual studio 9.0\vc\include\utility(84) : 参见“std::operator <”的声明
1>c:\program files (x86)\microsoft visual studio 9.0\vc\include\functional(143) : error C2784: “bool std::operator <(const std::pair<_Ty1,_Ty2> &,const std::pair<_Ty1,_Ty2> &)”: 无法从“const std::string”为“const std::pair<_Ty1,_Ty2> &”推导 模板 参数
1> c:\program files (x86)\microsoft visual studio 9.0\vc\include\utility(84) : 参见“std::operator <”的声明
1>c:\program files (x86)\microsoft visual studio 9.0\vc\include\functional(143) : error C2784: “bool std::operator <(const std::pair<_Ty1,_Ty2> &,const std::pair<_Ty1,_Ty2> &)”: 无法从“const std::string”为“const std::pair<_Ty1,_Ty2> &”推导 模板 参数
1> c:\program files (x86)\microsoft visual studio 9.0\vc\include\utility(84) : 参见“std::operator <”的声明
1>c:\program files (x86)\microsoft visual studio 9.0\vc\include\functional(143) : error C2784: “bool std::operator <(const std::pair<_Ty1,_Ty2> &,const std::pair<_Ty1,_Ty2> &)”: 无法从“const std::string”为“const std::pair<_Ty1,_Ty2> &”推导 模板 参数
1> c:\program files (x86)\microsoft visual studio 9.0\vc\include\utility(84) : 参见“std::operator <”的声明
1>c:\program files (x86)\microsoft visual studio 9.0\vc\include\functional(143) : error C2676: 二进制“<”: “const std::string”不定义该运算符或到预定义运算符可接收的类型的转换
1>生成日志保存在“file://e:\Projects\as\Debug\BuildLog.htm”
1>as - 17 个错误,0 个警告
#include "stdafx.h"
#include <map>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
map<string, int> mymap;
string str = "123";
int temp = 1;
mymap[str] = temp;
//mymap.insert(pair<string, int>(str, temp));
return 0;
}
编译错误:
1>正在编译...
1>as.cpp
1>c:\program files (x86)\microsoft visual studio 9.0\vc\include\functional(143) : error C2784: “bool std::operator <(const std::_Tree<_Traits> &,const std::_Tree<_Traits> &)”: 无法从“const std::string”为“const std::_Tree<_Traits> &”推导 模板 参数
1> c:\program files (x86)\microsoft visual studio 9.0\vc\include\xtree(1466) : 参见“std::operator <”的声明
1> c:\program files (x86)\microsoft visual studio 9.0\vc\include\functional(142): 编译类 模板 成员函数“bool std::less<_Ty>::operator ()(const _Ty &,const _Ty &) const”时
1> with
1> [
1> _Ty=std::string
1> ]
1> c:\program files (x86)\microsoft visual studio 9.0\vc\include\map(68): 参见对正在编译的类 模板 实例化“std::less<_Ty>”的引用
1> with
1> [
1> _Ty=std::string
1> ]
1> c:\program files (x86)\microsoft visual studio 9.0\vc\include\xtree(22): 参见对正在编译的类 模板 实例化“std::_Tmap_traits<_Kty,_Ty,_Pr,_Alloc,_Mfl>”的引用
1> with
1> [
1> _Kty=std::string,
1> _Ty=int,
1> _Pr=std::less<std::string>,
1> _Alloc=std::allocator<std::pair<const std::string,int>>,
1> _Mfl=false
1> ]
1> c:\program files (x86)\microsoft visual studio 9.0\vc\include\xtree(63): 参见对正在编译的类 模板 实例化“std::_Tree_nod<_Traits>”的引用
1> with
1> [
1> _Traits=std::_Tmap_traits<std::string,int,std::less<std::string>,std::allocator<std::pair<const std::string,int>>,false>
1> ]
1> c:\program files (x86)\microsoft visual studio 9.0\vc\include\xtree(89): 参见对正在编译的类 模板 实例化“std::_Tree_ptr<_Traits>”的引用
1> with
1> [
1> _Traits=std::_Tmap_traits<std::string,int,std::less<std::string>,std::allocator<std::pair<const std::string,int>>,false>
1> ]
1> c:\program files (x86)\microsoft visual studio 9.0\vc\include\xtree(107): 参见对正在编译的类 模板 实例化“std::_Tree_val<_Traits>”的引用
1> with
1> [
1> _Traits=std::_Tmap_traits<std::string,int,std::less<std::string>,std::allocator<std::pair<const std::string,int>>,false>
1> ]
1> c:\program files (x86)\microsoft visual studio 9.0\vc\include\map(78): 参见对正在编译的类 模板 实例化“std::_Tree<_Traits>”的引用
1> with
1> [
1> _Traits=std::_Tmap_traits<std::string,int,std::less<std::string>,std::allocator<std::pair<const std::string,int>>,false>
1> ]
1> e:\projects\as\as.cpp(11): 参见对正在编译的类 模板 实例化“std::map<_Kty,_Ty>”的引用
1> with
1> [
1> _Kty=std::string,
1> _Ty=int
1> ]
1>c:\program files (x86)\microsoft visual studio 9.0\vc\include\functional(143) : error C2784: “bool std::operator <(const std::_Tree<_Traits> &,const std::_Tree<_Traits> &)”: 无法从“const std::string”为“const std::_Tree<_Traits> &”推导 模板 参数
1> c:\program files (x86)\microsoft visual studio 9.0\vc\include\xtree(1466) : 参见“std::operator <”的声明
1>c:\program files (x86)\microsoft visual studio 9.0\vc\include\functional(143) : error C2784: “bool std::operator <(const std::_Tree<_Traits> &,const std::_Tree<_Traits> &)”: 无法从“const std::string”为“const std::_Tree<_Traits> &”推导 模板 参数
1> c:\program files (x86)\microsoft visual studio 9.0\vc\include\xtree(1466) : 参见“std::operator <”的声明
1>c:\program files (x86)\microsoft visual studio 9.0\vc\include\functional(143) : error C2784: “bool std::operator <(const std::_Tree<_Traits> &,const std::_Tree<_Traits> &)”: 无法从“const std::string”为“const std::_Tree<_Traits> &”推导 模板 参数
1> c:\program files (x86)\microsoft visual studio 9.0\vc\include\xtree(1466) : 参见“std::operator <”的声明
1>c:\program files (x86)\microsoft visual studio 9.0\vc\include\functional(143) : error C2784: “bool std::operator <(const std::reverse_iterator<_RanIt> &,const std::reverse_iterator<_RanIt2> &)”: 无法从“const std::string”为“const std::reverse_iterator<_RanIt> &”推导 模板 参数
1> c:\program files (x86)\microsoft visual studio 9.0\vc\include\xutility(2236) : 参见“std::operator <”的声明
1>c:\program files (x86)\microsoft visual studio 9.0\vc\include\functional(143) : error C2784: “bool std::operator <(const std::reverse_iterator<_RanIt> &,const std::reverse_iterator<_RanIt2> &)”: 无法从“const std::string”为“const std::reverse_iterator<_RanIt> &”推导 模板 参数
1> c:\program files (x86)\microsoft visual studio 9.0\vc\include\xutility(2236) : 参见“std::operator <”的声明
1>c:\program files (x86)\microsoft visual studio 9.0\vc\include\functional(143) : error C2784: “bool std::operator <(const std::reverse_iterator<_RanIt> &,const std::reverse_iterator<_RanIt2> &)”: 无法从“const std::string”为“const std::reverse_iterator<_RanIt> &”推导 模板 参数
1> c:\program files (x86)\microsoft visual studio 9.0\vc\include\xutility(2236) : 参见“std::operator <”的声明
1>c:\program files (x86)\microsoft visual studio 9.0\vc\include\functional(143) : error C2784: “bool std::operator <(const std::reverse_iterator<_RanIt> &,const std::reverse_iterator<_RanIt2> &)”: 无法从“const std::string”为“const std::reverse_iterator<_RanIt> &”推导 模板 参数
1> c:\program files (x86)\microsoft visual studio 9.0\vc\include\xutility(2236) : 参见“std::operator <”的声明
1>c:\program files (x86)\microsoft visual studio 9.0\vc\include\functional(143) : error C2784: “bool std::operator <(const std::_Revranit<_RanIt,_Base> &,const std::_Revranit<_RanIt2,_Base2> &)”: 无法从“const std::string”为“const std::_Revranit<_RanIt,_Base> &”推导 模板 参数
1> c:\program files (x86)\microsoft visual studio 9.0\vc\include\xutility(2046) : 参见“std::operator <”的声明
1>c:\program files (x86)\microsoft visual studio 9.0\vc\include\functional(143) : error C2784: “bool std::operator <(const std::_Revranit<_RanIt,_Base> &,const std::_Revranit<_RanIt2,_Base2> &)”: 无法从“const std::string”为“const std::_Revranit<_RanIt,_Base> &”推导 模板 参数
1> c:\program files (x86)\microsoft visual studio 9.0\vc\include\xutility(2046) : 参见“std::operator <”的声明
1>c:\program files (x86)\microsoft visual studio 9.0\vc\include\functional(143) : error C2784: “bool std::operator <(const std::_Revranit<_RanIt,_Base> &,const std::_Revranit<_RanIt2,_Base2> &)”: 无法从“const std::string”为“const std::_Revranit<_RanIt,_Base> &”推导 模板 参数
1> c:\program files (x86)\microsoft visual studio 9.0\vc\include\xutility(2046) : 参见“std::operator <”的声明
1>c:\program files (x86)\microsoft visual studio 9.0\vc\include\functional(143) : error C2784: “bool std::operator <(const std::_Revranit<_RanIt,_Base> &,const std::_Revranit<_RanIt2,_Base2> &)”: 无法从“const std::string”为“const std::_Revranit<_RanIt,_Base> &”推导 模板 参数
1> c:\program files (x86)\microsoft visual studio 9.0\vc\include\xutility(2046) : 参见“std::operator <”的声明
1>c:\program files (x86)\microsoft visual studio 9.0\vc\include\functional(143) : error C2784: “bool std::operator <(const std::pair<_Ty1,_Ty2> &,const std::pair<_Ty1,_Ty2> &)”: 无法从“const std::string”为“const std::pair<_Ty1,_Ty2> &”推导 模板 参数
1> c:\program files (x86)\microsoft visual studio 9.0\vc\include\utility(84) : 参见“std::operator <”的声明
1>c:\program files (x86)\microsoft visual studio 9.0\vc\include\functional(143) : error C2784: “bool std::operator <(const std::pair<_Ty1,_Ty2> &,const std::pair<_Ty1,_Ty2> &)”: 无法从“const std::string”为“const std::pair<_Ty1,_Ty2> &”推导 模板 参数
1> c:\program files (x86)\microsoft visual studio 9.0\vc\include\utility(84) : 参见“std::operator <”的声明
1>c:\program files (x86)\microsoft visual studio 9.0\vc\include\functional(143) : error C2784: “bool std::operator <(const std::pair<_Ty1,_Ty2> &,const std::pair<_Ty1,_Ty2> &)”: 无法从“const std::string”为“const std::pair<_Ty1,_Ty2> &”推导 模板 参数
1> c:\program files (x86)\microsoft visual studio 9.0\vc\include\utility(84) : 参见“std::operator <”的声明
1>c:\program files (x86)\microsoft visual studio 9.0\vc\include\functional(143) : error C2784: “bool std::operator <(const std::pair<_Ty1,_Ty2> &,const std::pair<_Ty1,_Ty2> &)”: 无法从“const std::string”为“const std::pair<_Ty1,_Ty2> &”推导 模板 参数
1> c:\program files (x86)\microsoft visual studio 9.0\vc\include\utility(84) : 参见“std::operator <”的声明
1>c:\program files (x86)\microsoft visual studio 9.0\vc\include\functional(143) : error C2676: 二进制“<”: “const std::string”不定义该运算符或到预定义运算符可接收的类型的转换
1>生成日志保存在“file://e:\Projects\as\Debug\BuildLog.htm”
1>as - 17 个错误,0 个警告
...全文
相关推荐
STL_map初始化和排序
用VC++控制台应用程序实现了STL数据map的使用,map对象数据的初始及其排序
Java中List与Map初始化的一些写法
Java的在还没有发现新写法之前时,我一直是这么初始化List跟Map: //初始化List List list = new ArrayList(); list.add("string1"); list.add("string2"); //some other list.add() code…… list.add("stringN"); //初始化Map Map map = new HashMap(); map.put("key1", "value1"); map.put("key2", "value2"); //…. some other map.put() code
Java中List与Map初始化的一些写法分享
主要介绍了Java中List与Map初始化的一些写法有需要的朋友可以参考一下
MFC贴图之半透明贴图
用MFC写的一个半透明贴图的例子,想学习如何贴图的可以参考一下。应该对你有所帮助把!
Java初始化Map方法[项目代码]
本文介绍了Java中初始化Map的四种不同方法。第一种是最常见的方式,通过新建Map对象并使用静态代码块进行初始化。第二种利用了Java8的双括号初始化特性,简化了代码。第三种是Java9引入的最简便方式,使用Map.of方法创建不可变集合。第四种则借助Guava库的ImmutableMap.of方法实现初始化。这些方法各有特点,适用于不同场景,为开发者提供了灵活的选择。


