java中std,使用std :: string作为std :: map的键

我想有一个std :: map(int .NET 4.0) . 我们当然知道 Map 是一棵树,需要一个运算符

错误24错误C2676:二进制'

所以我把我的google-foo工作并找到了这个解决方案:

struct StringComparerForMap

{

public:

bool operator()(const std::string x, const std::string y)

{

// Add compare logic here

}

};

...

std::map<:string customobject stringcomparerformap> myMap;

这种方法运行良好一段时间,现在我遇到了一个我认为是由此导致的错误 . 在STL框架的某个深处,它似乎忽略了上面的定义,默认为operator < .

在VS2010 .NET 4.0中有没有办法使用字符串作为 Map 的关键?

我知道我可以接受该字符串并编写一个函数将其哈希到一个int,但那里的乐趣在哪里?

EDIT

我将尽力为大卫解释这一点 . 当映射使用比较器结构时,它在发布时崩溃并在调试中失败调试断言 . 失败的断言在xtree第1746行 .

表达式:无效的运算符

这就是让我相信尽管给 Map 一个比较器,它仍然向某些路径默认为运算符

CustomObject o = stringObjectMap[key];

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值