]> git.saurik.com Git - wxWidgets.git/blame - interface/hashmap.h
forward declare wxVideoMode as struct, not class, now that it was reverted to be...
[wxWidgets.git] / interface / hashmap.h
CommitLineData
23324ae1
FM
1/////////////////////////////////////////////////////////////////////////////
2// Name: hashmap.h
e54c96f1 3// Purpose: interface of wxHashMap
23324ae1
FM
4// Author: wxWidgets team
5// RCS-ID: $Id$
6// Licence: wxWindows license
7/////////////////////////////////////////////////////////////////////////////
8
9/**
10 @class wxHashMap
11 @wxheader{hashmap.h}
7c913512 12
23324ae1
FM
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.
7c913512 17
23324ae1
FM
18 @library{wxbase}
19 @category{FIXME}
20*/
7c913512 21class wxHashMap
23324ae1
FM
22{
23public:
24 //@{
25 /**
26 Copy constructor.
27 */
28 wxHashMap(size_type size = 10);
7c913512 29 wxHashMap(const wxHashMap& map);
23324ae1
FM
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();
328f5751 38 const iterator begin();
23324ae1
FM
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 */
328f5751 50 size_type count(const key_type& key) const;
23324ae1
FM
51
52 /**
53 Returns @true if the hash map does not contain any elements, @false otherwise.
54 */
328f5751 55 bool empty() const;
23324ae1
FM
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();
328f5751 63 const iterator end();
23324ae1
FM
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);
7c913512
FM
72 void erase(iterator it);
73 void erase(const_iterator it);
23324ae1
FM
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 */
328f5751
FM
82 iterator find(const key_type& key) const;
83 const_iterator find(const key_type& key) const;
23324ae1
FM
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 */
328f5751 104 size_type size() const;
23324ae1 105};
e54c96f1 106