Visual C++.net 2003中使用stl的hash_map中的Key如何才能使用自己定义的类型呢?
在VC。NET中想使用hash_map存放一个struct类型,要怎么做呢?是不是要自己定义以下hash_compare呢?
[解决办法]
重载小于运算符
[解决办法]
当你的容器中元素是一些标准类型(int float char)或者string时,你可以直接使用这些函数模板。但如果你时自己定义的类型或者你需要按照其他方式排序,你可以有两种方法来达到效果:一种是自己写比较函数。
另一种是重载类型的 ' < '操作符。
struct mystruct
{
int first;
int second;
bool operator < (const mystruct &m)const
{
return first < m.first;
}
};
[解决办法]
试着重载一下 operator unsigned long(),返回一个不重复的整数