读书人

c++ hash_map 存取的有关问题

发布时间: 2012-02-21 16:26:23 作者: rapoo

c++ hash_map 存取的问题,在线等
帮看一下,怎么用?
定义:
class name_hash :public hash_compare<char* const>
{
public:
size_t operator( )( const char* const& Key ) const
{
return atol(strchr(Key, '0'));
}
bool operator( )( const char*const& _Key1, const char*const& _Key2 ) const
{
return strcmp(_Key1, _Key2)==0;
}
};
/* key:name,value:pointer */
typedef stdext::hash_map<char*const, void*, name_hash> name_map;
typedef name_map::value_type name_pair;

使用:
name_map work;
work.insert(name_pair("111","aaa"));
work.insert(name_pair("111","bbb"));//这行会覆盖掉上行的数据吗?
还有事如何根据"111"得到,"bbb",是用find方法,但还不会用,
最好写个;例子,我没接触过hash_map,谢谢


[解决办法]
会覆盖
string str = work["111"] ; //str就是"bbb" 了
[解决办法]
hash_map的外部接口几乎完全和map相同。

读书人网 >C++

热点推荐