///////////////////////////////////////////////////////////////////////////// // Name: hashset.h // Purpose: interface of wxHashSet // Author: wxWidgets team // RCS-ID: $Id$ // Licence: wxWindows license ///////////////////////////////////////////////////////////////////////////// /** @class wxHashSet 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. @library{wxbase} @category{FIXME} */ class wxHashSet { public: //@{ /** Copy constructor. */ wxHashSet(size_type size = 10); wxHashSet(const wxHashSet& set); //@} //@{ /** Returns an iterator pointing at the first element of the hash set. Please remember that hash sets do not guarantee ordering. */ const_iterator begin(); const iterator begin(); //@} /** Removes all elements from the hash set. */ void clear(); /** Counts the number of elements with the given key present in the set. This function returns only 0 or 1. */ size_type count(const key_type& key) const; /** Returns @true if the hash set does not contain any elements, @false otherwise. */ bool empty() const; //@{ /** Returns an iterator pointing at the one-after-the-last element of the hash set. Please remember that hash sets do not guarantee ordering. */ const_iterator end(); const iterator end(); //@} //@{ /** Erases the element pointed to by the iterator. After the deletion the iterator is no longer valid and must not be used. */ size_type erase(const key_type& key); void erase(iterator it); void erase(const_iterator it); //@} //@{ /** If an element with the given key is present, the functions returns an iterator pointing at that element, otherwise an invalid iterator is returned (i.e. hashset.find( non_existent_key ) == hashset.end()). */ iterator find(const key_type& key) const; const_iterator find(const key_type& key) const; //@} /** Inserts the given value in the hash set. The return value is equivalent to a @c std::pairwxHashMap::iterator, bool; the iterator points to the inserted element, the boolean value is @true if @c v was actually inserted. */ Insert_Result insert(const value_type& v); /** Returns the number of elements in the set. */ size_type size() const; };