By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
454,443 Members | 1,409 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 454,443 IT Pros & Developers. It's quick & easy.

Tutorial and example to SGI STL hash_set

P: n/a
Generally, is there somewhere a good tutorial and examplefor the use of
SGI STL hash_set?
I am lost in SGI documentation.

More specifically, i am trying to use hat I need that a hash_set :

hash_set<ch;

and logically the h function for my c class is missing and I get a
compile error.

How do I declare this hash function?
Dec 28 '06 #1
Share this Question
Share on Google+
2 Replies


P: n/a
Pierre Couderc wrote:
Generally, is there somewhere a good tutorial and examplefor the use of
SGI STL hash_set?
I don't know, but you can get a tutorial for the very similar and
nearly standardized std::tr1::unordered_set in Pete Becker's book on
TR1.
I am lost in SGI documentation.

More specifically, i am trying to use hat I need that a hash_set :

hash_set<ch;

and logically the h function for my c class is missing and I get a
compile error.

How do I declare this hash function?
You need to specialize the hash functor for your class:

#include <hash_set>

class C { /*...*/ };

// Hashable classes must have an == operator
// We'll just stub it out here, pending definition of C
bool operator==( const C&, const C& ) { return true; }

namespace std
{
template<struct hash<C>
{
// Define the hash function. We'll just stub it out here.
size_t operator()( const C& ) const { return 0; }
};
}

void hash_set_test()
{
C c;
std::hash_set<Chsc;
hsc.insert( c );
}

Cheers! --M

Dec 28 '06 #2

P: n/a

Thank you,
It is exactly the example that was missing me. I am sure that it will
be useful tou those who will be looking for "hash-set tutorial"...
The exact syntax of the hash function in not evident for me, even it it
should...
Thank you again,
Pierre

On Dec 28, 4:26 pm, "mlimber" <mlim...@gmail.comwrote:
Pierre Couderc wrote:
Generally, is there somewhere a good tutorial and examplefor the use of
SGI STL hash_set?I don't know, but you can get a tutorial for the very similar and
nearly standardized std::tr1::unordered_set in Pete Becker's book on
TR1.
I am lost in SGI documentation.
More specifically, i am trying to use hat I need that a hash_set :
hash_set<ch;
and logically the h function for my c class is missing and I get a
compile error.
How do I declare this hash function?You need to specialize the hash functor for your class:

#include <hash_set>

class C { /*...*/ };

// Hashable classes must have an == operator
// We'll just stub it out here, pending definition of C
bool operator==( const C&, const C& ) { return true; }

namespace std
{
template<struct hash<C>
{
// Define the hash function. We'll just stub it out here.
size_t operator()( const C& ) const { return 0; }
};
}

void hash_set_test()
{
C c;
std::hash_set<Chsc;
hsc.insert( c );
}

Cheers! --M
Dec 30 '06 #3

This discussion thread is closed

Replies have been disabled for this discussion.