]> git.saurik.com Git - wxWidgets.git/blobdiff - interface/wx/hashset.h
Moved all interface headers into a 'wx' subdirectory for proper use of Doxygen path...
[wxWidgets.git] / interface / wx / hashset.h
diff --git a/interface/wx/hashset.h b/interface/wx/hashset.h
new file mode 100644 (file)
index 0000000..1470b29
--- /dev/null
@@ -0,0 +1,99 @@
+/////////////////////////////////////////////////////////////////////////////
+// Name:        hashset.h
+// Purpose:     interface of wxHashSet
+// Author:      wxWidgets team
+// RCS-ID:      $Id$
+// Licence:     wxWindows license
+/////////////////////////////////////////////////////////////////////////////
+
+/**
+    @class wxHashSet
+    @wxheader{hashset.h}
+
+    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;
+};
+