`
aigo
  • 浏览: 2537845 次
  • 性别: Icon_minigender_1
  • 来自: 宜昌
社区版块
存档分类
最新评论

vs2010中的stdext::hash_map在vs2015下的问题

阅读更多

vs2010中的hash_map调用方式:

需要头文件<hash_map>和命令空间stdext,且需要为不同key类型定义相应的comparator

#include <hash_map>
using namespace stdext;


struct intLess : public std::binary_function<const int, const int, bool>
{
public:
    result_type operator()(const first_argument_type& _Left, const second_argument_type& _Right) const
    {
        return _Left == _Right;
    }
};

struct charLess : public std::binary_function<const char*, const char*, bool>
{
public:
    result_type operator()(const first_argument_type& _Left, const second_argument_type& _Right) const
    {
        return(_stricmp(_Left, _Right) < 0 ? true : false);
    }
};

这样就产生了一个要命的问题:hash_map的key必须为const。这个要求只有在vs2012之前版本才有;gcc我碰到的版本都没有。

 

如果你用新版本,比如vs2015,那么就会碰到这种编译错误:

Microsoft Visual Studio 14.0\VC\INCLUDE\xstddef(377): error C2338: The C++ Standard doesn't provide a hash for this type.

 

原因就是这个const不再需要了,另外C++11已经添加了std::unordered_map,且不需要自己实现了comparator,使用起来比旧版的hash_map更方便。微软设计一些反人类的api也够坑的。

 

总结:
除了vs2010下的stdext::hash_map的key需要为const外,其他情况下的map都不需要为const,其中std::unordered_map的key必须不能为const,std::map可以为const也可以不为const。

 

 

 

分享到:
评论

相关推荐

    jdbc-stdext-2.0.jar

    针对maven项目搭建时,出现missing artifacts:javax.sql:jdbc-stdext:2.0错误解决。因为授权的问题,在maven的中心库里没有这个jar包。可下载到本地引用。

    jdbc2_0-stdext.jar

    jdbc2_0-stdext.jar jdbc2_0-stdext.jar

    JavaEE源代码 jdbc2_0-stdext

    JavaEE源代码 jdbc2_0-stdextJavaEE源代码 jdbc2_0-stdextJavaEE源代码 jdbc2_0-stdextJavaEE源代码 jdbc2_0-stdextJavaEE源代码 jdbc2_0-stdextJavaEE源代码 jdbc2_0-stdextJavaEE源代码 jdbc2_0-stdextJavaEE源...

    Java Cache System 应用JAR包

    Web服务器端对客户端的请求处理结果,可以做缓存处理,降低服务器端资源的占用。支持数据对象、页面的缓存处理。一共有2个jar包,经过项目测试可用。

    MySQL_Driver.rar

    MySQL 驱动包 jdbc2_0-stdext.jar,mysql-connector-java-3.0.16-ga-bin.jar,proxool-0.8.3.jar

    struts2.1.6+spring2.0+hibernate3.2常用配置包

    spring版本有2.0,2.5的,hibernate版本较多些至3.2,首先选版本就选择最优的,struts2没的选只有2.1.6版的,所以先导入struts2支持,然后是spring选的是2.0,问题就出在struts2中spring的插件上了,没有从MyEclipse...

    jstl.jar-jdom.jar-log4j-1.2.13.jar-ojdbc14._jar-standard.jar-commons-net-1.4.1.jar-xml-apis.jar-jdbc

    jdom.jar jstl.jar log4j-1.2.13.jar ojdbc14._jar standard.jar commons-net-1.4.1.jar xml-apis.jar jdbc2_0-stdext.jar

    学生选课系统中所用的60个jar包

    oro.jar jakarta-oro-2.0.8.jar JAMon.jar jasperreports-1.0.2.jar jaxen-1.1-beta-4.jar jdbc2_0-stdext.jar jmxremote.jar jmxremote_optional.jar jmxri.jar jotm.jar jta.jar junit.jar jxl.jar mysql-...

    (2.0版本)自己写的struts2+hibernate+spring实例

    1.1-beta-7.jar jdbc2_0-stdext.jar jta.jar log4j-1.2.11.jar xerces-2.6.2.jar xml-apis.jar c3p0-0.9.0.jar concurrent-1.3.2.jar connector.jar jboss-cache.jar jboss...

    配置数据源

    jdbc2_0-stdext.jar,服务端web开发,加载数据源必备jar包,欢迎分享

    java工程师能够用到的各种jar包

    jdbc2_0-stdext.jar jstl.jar jta.jar junit.jar log4j-1.2.8.jar msslserver2.jar spring.jar spring-mock.jar standard.jar struts.jar strutstest-2.1.0.jar xerces.jar xml-apis.jar 还有好多,大家拿去吧。总会...

    32款java编程所需JAR包.zip

    logging.jar commons-logging-1.0.4.jar commons-validator.jar dom4j-1.6.1.jar dwr.jar hibernate3.jar jaas.jar jakarta-oro.jar jaxen-1.1-beta-7.jar jdbc2_0-stdext.jar jstl.jar jta.jar junit-4.1.jar log4j...

    c3p0-0.9.1.2等等

    jdbc2_0-stdext jotm json-lib-2.3-jdk15-javadoc jta jxl log4j-1.2.11 log4j-1.2.14 portlet-api spring-agent spring-aop spring-beans spring-context spring-core spring-dao spring-hibernate3 spring-ibatis ...

    spring+struts+hibernate+dwr+jstl做的实例

    完全由Spring接管DWR AJAX处理(不需要配置dwr.xml)等技术点 源码在/mytest/WEB-INF/src下 Winxp sp3+JDK1.6+Tomcat 6.0下运行通过 因文件长度限制,未加入相关类库,请自行加入,需要的类库有: dom.jar...

    Hibernate包,齐全

    antlr-2.7.5H3.jar asm.jar asm-attrs.jar c3p0-0.9.1-pre5a.jar cglib-2.1.jar commons-collections-2.1.1.jar ...jdbc2_0-stdext.jar jta.jar jtds-1.2.2.jar pull-parser-2.1.10.jar 只多不少。

    spring-hibernate-dwr实例

    collections-2.1.1.jar commons-logging-1.0.4.jar dom4j-1.6.1.jar ehcache-1.1.jar hibernate3.jar jaas.jar jaxen-1.1-beta-7.jar jdbc2_0-stdext.jar jta.jar log4j-1.2.11.jar ...

    培训体系管理系统-oracle-ssh

    jboss-jmx.jar jboss-system.jar jdbc2_0-stdext.jar jgroups-2.2.8.jar jstl.jar jta.jar jxl.jar log4j-1.2.11.jar log4j-1.2.14.jar mysql-connector-java-3.1.13-bin.jar Oracle10g.jar oscache-2.1.jar ...

    hibernate3.1 jar包

    jdbc2_0-stdext.jar (2.0) - Standard Extension JDBC APIs - runtime, required for standalone operation (outside application server) ant-antlr-1.6.5.jar (1.6.5) - Ant antlr support - buildtime jboss-...

    网上购物系统

    数据库书写论文代码讲解网上... &lt;classpathentry kind="lib" path="WebRoot/WEB-INF/lib/jdbc2_0-stdext.jar"/&gt; &lt;classpathentry kind="lib" path="WebRoot/WEB-INF/lib/xerces-2.6.2.jar"/&gt;

    jdbc2000,jdbc2005

    jdbc2000和jdbc2005的jar包

Global site tag (gtag.js) - Google Analytics