GCC:
阅读(1625) | 评论(0) | 转发(0) |
<script>window._bd_share_config={"common":{"bdSnsKey":{},"bdText":"","bdMini":"2","bdMiniList":false,"bdPic":"","bdStyle":"0","bdSize":"16"},"share":{}};with(document)0[(getElementsByTagName('head')[0]||body).appendChild(createElement('script')).src='http://bdimg.share.baidu.com/static/api/js/share.js?v=89860593.js?cdnversion='+~(-new Date()/36e5)];</script>
#include <ext/hash_map>
using namespace __gnu_cxx;
struct compare_str
{
bool operator()(const char* p1, const char*p2) const
{
return strcmp(p1, p2) == 0;
}
};
int main(int argc, char* argv[])
{
hash_map<const char*, int, hash<const char*>, compare_str> StrIntMap;
StrIntMap["a"] = 111;
StrIntMap["b"] = 222;
return 0;
}
VC:
- #include <hash_map>
- using namespace std;
- using namespace stdext;
-
- struct CharLess : public 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<const char*, int, hash_compare<const char*, CharLess> > CharHash;
- CharHash["a"] = 123;
- CharHash["b"] = 456;
- char szInput[64] = "";
- scanf("%s", szInput);
- int val = CharHash[szInput];
若是int类型,可以不设置比较器,但对于指针类型则不行,例如char*。例如,下面的代码就会去比较"a"和"b"这两个常量的指针大小,这个时候就需要上面的比较器了。
参考:
http://blog.youkuaiyun.com/srzhz/article/details/7881946
- hash_map<const char*, int> CharHash;
- CharHash["a"] = 123;
- CharHash["b"] = 456;
- char szInput[64] = "";
- scanf("%s", szInput);
- int val = CharHash[szInput];
相关热门文章
给主人留下些什么吧!~~
评论热议