This is a simple, type-safe, and reasonably efficient hash set class,
whose interface is a subset of the interface of STL containers.
- In particular, the interface is modeled after std::set, and the various,
- non-standard, std::hash_map.
+
+ The interface is similar to std::tr1::hash_set or std::set classes but
+ notice that, unlike std::set, the contents of a hash set is not sorted.
Example:
@code
class MyClass { ... };
// same, with MyClass* keys (only uses pointer equality!)
- WX_DECLARE_HASH_SET( MyClass*, wxPointerHash, wxPointerEqual, MySet1 );
+ WX_DECLARE_HASH_SET( MyClass*, ::wxPointerHash, ::wxPointerEqual, MySet1 );
// same, with int keys
- WX_DECLARE_HASH_SET( int, wxIntegerHash, wxIntegerEqual, MySet2 );
+ WX_DECLARE_HASH_SET( int, ::wxIntegerHash, ::wxIntegerEqual, MySet2 );
// declare a hash set with string keys
- WX_DECLARE_HASH_SET( wxString, wxStringHash, wxStringEqual, MySet3 );
+ WX_DECLARE_HASH_SET( wxString, ::wxStringHash, ::wxStringEqual, MySet3 );
MySet1 h1;
MySet2 h1;
@code
WX_DECLARE_HASH_SET( int,
- wxIntegerHash,
- wxIntegerEqual,
+ ::wxIntegerHash,
+ ::wxIntegerEqual,
MySet );
// using an user-defined class for keys
};
WX_DECLARE_HASH_SET( MyKey, // type of the keys
- MyKeyHash, // hasher
- MyKeyEqual, // key equality predicate
+ ::MyKeyHash, // hasher
+ ::MyKeyEqual, // key equality predicate
CLASSNAME); // name of the class
@endcode