3 // $Id: Array_Map.inl 80826 2008-03-04 14:51:23Z wotte $
5 ACE_BEGIN_VERSIONED_NAMESPACE_DECL
7 template<typename Key, typename Value, class EqualTo>
9 ACE_Array_Map<Key, Value, EqualTo>::ACE_Array_Map (
10 typename ACE_Array_Map<Key, Value, EqualTo>::size_type s)
13 , nodes_ (s == 0 ? 0 : new value_type[s])
17 template<typename Key, typename Value, class EqualTo>
18 ACE_INLINE ACE_Array_Map<Key, Value, EqualTo> &
19 ACE_Array_Map<Key, Value, EqualTo>::operator= (
20 ACE_Array_Map<Key, Value, EqualTo> const & map)
22 // Strongly exception-safe assignment.
24 ACE_Array_Map<Key, Value, EqualTo> temp (map);
29 template<typename Key, typename Value, class EqualTo>
30 ACE_INLINE typename ACE_Array_Map<Key, Value, EqualTo>::iterator
31 ACE_Array_Map<Key, Value, EqualTo>::begin (void)
36 template<typename Key, typename Value, class EqualTo>
37 ACE_INLINE typename ACE_Array_Map<Key, Value, EqualTo>::iterator
38 ACE_Array_Map<Key, Value, EqualTo>::end (void)
40 return this->nodes_ + this->size_;
43 template<typename Key, typename Value, class EqualTo>
44 ACE_INLINE typename ACE_Array_Map<Key, Value, EqualTo>::const_iterator
45 ACE_Array_Map<Key, Value, EqualTo>::begin (void) const
50 template<typename Key, typename Value, class EqualTo>
51 ACE_INLINE typename ACE_Array_Map<Key, Value, EqualTo>::const_iterator
52 ACE_Array_Map<Key, Value, EqualTo>::end (void) const
54 return this->nodes_ + this->size_;
57 template<typename Key, typename Value, class EqualTo>
58 ACE_INLINE typename ACE_Array_Map<Key, Value, EqualTo>::reverse_iterator
59 ACE_Array_Map<Key, Value, EqualTo>::rbegin (void)
61 return reverse_iterator (this->end ());
64 template<typename Key, typename Value, class EqualTo>
65 ACE_INLINE typename ACE_Array_Map<Key, Value, EqualTo>::reverse_iterator
66 ACE_Array_Map<Key, Value, EqualTo>::rend (void)
68 return reverse_iterator (this->begin ());
71 template<typename Key, typename Value, class EqualTo>
72 ACE_INLINE typename ACE_Array_Map<Key, Value, EqualTo>::const_reverse_iterator
73 ACE_Array_Map<Key, Value, EqualTo>::rbegin (void) const
75 return const_reverse_iterator (this->end ());
78 template<typename Key, typename Value, class EqualTo>
79 ACE_INLINE typename ACE_Array_Map<Key, Value, EqualTo>::const_reverse_iterator
80 ACE_Array_Map<Key, Value, EqualTo>::rend (void) const
82 return const_reverse_iterator (this->begin ());
85 template<typename Key, typename Value, class EqualTo>
86 ACE_INLINE typename ACE_Array_Map<Key, Value, EqualTo>::size_type
87 ACE_Array_Map<Key, Value, EqualTo>::size (void) const
92 template<typename Key, typename Value, class EqualTo>
93 ACE_INLINE typename ACE_Array_Map<Key, Value, EqualTo>::size_type
94 ACE_Array_Map<Key, Value, EqualTo>::max_size (void) const
96 return size_type (-1) / sizeof (value_type);
99 template<typename Key, typename Value, class EqualTo>
101 ACE_Array_Map<Key, Value, EqualTo>::is_empty (void) const
103 return this->size_ == 0;
106 // The following method is deprecated.
108 template<typename Key, typename Value, class EqualTo>
110 ACE_Array_Map<Key, Value, EqualTo>::empty (void) const
112 return this->is_empty ();
115 template<typename Key, typename Value, class EqualTo>
116 ACE_INLINE typename ACE_Array_Map<Key, Value, EqualTo>::size_type
117 ACE_Array_Map<Key, Value, EqualTo>::count (
118 typename ACE_Array_Map<Key, Value, EqualTo>::key_type const & k)
121 (this->find (k) == this->end () ? 0 : 1); // Only one datum per key.
124 template<typename Key, typename Value, class EqualTo>
125 ACE_INLINE typename ACE_Array_Map<Key, Value, EqualTo>::data_type &
126 ACE_Array_Map<Key, Value, EqualTo>::operator[] (
127 typename ACE_Array_Map<Key, Value, EqualTo>::key_type const & k)
129 iterator i = (this->insert (value_type (k, data_type ()))).first;
133 ACE_END_VERSIONED_NAMESPACE_DECL