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