首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

求 VS 2008 中 hash_set 施用自定义类型的方法

2012-08-21 
求 VS 2008 中 hash_set 使用自定义类型的方法在hash_set中如果包含的是基本类型或者某些预定义的类型的话

求 VS 2008 中 hash_set 使用自定义类型的方法
在hash_set中如果包含的是基本类型或者某些预定义的类型的话,就可以直接使用如hash_set<int>这样的形式来初始化。

但是,我现在有一个自定义的类 class MyClass {...}; 我想使用hash_set这个容器来容纳这个MyClass,我应该怎么做?

最好能给出相应的代码,百度上面复制粘贴一大段的绝不给分!

[解决办法]
可以的

C/C++ code
#include<iostream>#include <hash_set>using namespace std;using namespace stdext;struct T {    T(int x):value(x){}    int value;    bool operator==(const T& o) {        return value==o.value;    }};struct htraits {    // comparisons    bool operator()(const T& lhs,const T& rhs) const {        return !(lhs.value==rhs.value); //注意这里的逻辑    }    // hashing function    size_t operator()(const T& key) const {        return key.value;    }    // bucket information    static const size_t bucket_size=4u;    static const size_t min_buckets=8u;};int main() {    hash_set<T,htraits> ht;    hash_set<T,htraits>::iterator it;    T a(1),b(2),c(3);    ht.insert(a);    ht.insert(b);    it=ht.find(c);    if (it!=ht.end())        cout <<it->value<<endl;    return 0;} 

热点排行