]> git.saurik.com Git - wxWidgets.git/blob - interface/hashmap.h
pen.h depends from brush.h in compat mode
[wxWidgets.git] / interface / hashmap.h
1 /////////////////////////////////////////////////////////////////////////////
2 // Name: hashmap.h
3 // Purpose: interface of wxHashMap
4 // Author: wxWidgets team
5 // RCS-ID: $Id$
6 // Licence: wxWindows license
7 /////////////////////////////////////////////////////////////////////////////
8
9 /**
10 @class wxHashMap
11 @wxheader{hashmap.h}
12
13 This is a simple, type-safe, and reasonably efficient hash map class,
14 whose interface is a subset of the interface of STL containers. In
15 particular, the interface is modeled after std::map, and the various,
16 non-standard, std::hash_map.
17
18 @library{wxbase}
19 @category{FIXME}
20 */
21 class wxHashMap
22 {
23 public:
24 //@{
25 /**
26 Copy constructor.
27 */
28 wxHashMap(size_type size = 10);
29 wxHashMap(const wxHashMap& map);
30 //@}
31
32 //@{
33 /**
34 Returns an iterator pointing at the first element of the hash map.
35 Please remember that hash maps do not guarantee ordering.
36 */
37 const_iterator begin();
38 const iterator begin();
39 //@}
40
41 /**
42 Removes all elements from the hash map.
43 */
44 void clear();
45
46 /**
47 Counts the number of elements with the given key present in the map.
48 This function returns only 0 or 1.
49 */
50 size_type count(const key_type& key) const;
51
52 /**
53 Returns @true if the hash map does not contain any elements, @false otherwise.
54 */
55 bool empty() const;
56
57 //@{
58 /**
59 Returns an iterator pointing at the one-after-the-last element of the hash map.
60 Please remember that hash maps do not guarantee ordering.
61 */
62 const_iterator end();
63 const iterator end();
64 //@}
65
66 //@{
67 /**
68 Erases the element pointed to by the iterator. After the deletion
69 the iterator is no longer valid and must not be used.
70 */
71 size_type erase(const key_type& key);
72 void erase(iterator it);
73 void erase(const_iterator it);
74 //@}
75
76 //@{
77 /**
78 If an element with the given key is present, the functions returns
79 an iterator pointing at that element, otherwise an invalid iterator
80 is returned (i.e. hashmap.find( non_existent_key ) == hashmap.end()).
81 */
82 iterator find(const key_type& key) const;
83 const_iterator find(const key_type& key) const;
84 //@}
85
86 /**
87 Inserts the given value in the hash map. The return value is
88 equivalent to a @c std::pairiterator(), bool;
89 the iterator points to the inserted element, the boolean value
90 is @true if @c v was actually inserted.
91 */
92 Insert_Result insert(const value_type& v);
93
94 /**
95 Use the key as an array subscript. The only difference is that if the
96 given key is not present in the hash map, an element with the
97 default @c value_type() is inserted in the table.
98 */
99 mapped_type operator[](const key_type& key);
100
101 /**
102 Returns the number of elements in the map.
103 */
104 size_type size() const;
105 };
106