ACE_Array_Map< Key, Value, EqualTo > Class Template Reference
Light weight array-based map with fast iteration, but linear (i.e. O(n)) search times.
More...
#include <Array_Map.h>
List of all members.
Detailed Description
template<typename Key, typename Value, class EqualTo = std::equal_to<Key>>
class ACE_Array_Map< Key, Value, EqualTo >
Light weight array-based map with fast iteration, but linear (i.e. O(n)) search times.
Map implementation that focuses on small footprint and fast iteration. Search times are, however, linear (O(n)) meaning that this map isn't suitable for large data sets that will be searched in performance critical areas of code. Iteration over large data sets, however, is faster than linked list-based maps, for example, since spatial locality is maximized through the use of contiguous arrays as the underlying storage.
- An
ACE_Array_Map
is a unique associative container, meaning that duplicate values may not be added to the map. It is also pair associative (value_type is a std::pair<>). It is not a sorted container.
- An STL
std::map
-like interface is exposed by this class portability. Furthermore, this map's iterators are compatible with STL algorithms.
- Requirements and Performance Characteristics
- Internal Structure Array
- Duplicates allowed? No
- Random access allowed? Yes
- Search speed O(n)
- Insert/replace speed O(n), can be longer if the map has to resize
- Iterator still valid after change to container? No
- Frees memory for removed elements? Yes
- Items inserted by Value
- Requirements for key type
- Default constructor
- Copy constructor
- operator=
- operator==
- Requirements for object type
- Default constructor
- Copy constructor
- operator=
Member Typedef Documentation
template<typename Key, typename Value, class EqualTo = std::equal_to<Key>>
template<typename Key, typename Value, class EqualTo = std::equal_to<Key>>
template<typename Key, typename Value, class EqualTo = std::equal_to<Key>>
template<typename Key, typename Value, class EqualTo = std::equal_to<Key>>
template<typename Key, typename Value, class EqualTo = std::equal_to<Key>>
template<typename Key, typename Value, class EqualTo = std::equal_to<Key>>
template<typename Key, typename Value, class EqualTo = std::equal_to<Key>>
template<typename Key, typename Value, class EqualTo = std::equal_to<Key>>
template<typename Key, typename Value, class EqualTo = std::equal_to<Key>>
template<typename Key, typename Value, class EqualTo = std::equal_to<Key>>
template<typename Key, typename Value, class EqualTo = std::equal_to<Key>>
Constructor & Destructor Documentation
template<typename Key, typename Value, class EqualTo = std::equal_to<Key>>
Default Constructor.
Create an empty map with a preallocated buffer of size s.
template<typename Key , typename Value , class EqualTo >
template<typename InputIterator >
template<typename Key , typename Value , class EqualTo >
template<typename Key , typename Value , class EqualTo >
Member Function Documentation
template<typename Key , typename Value , class EqualTo >
template<typename Key , typename Value , class EqualTo >
template<typename Key , typename Value , class EqualTo >
void ACE_Array_Map< Key, Value, EqualTo >::clear |
( |
void |
|
) |
[inline] |
Clear contents of map.
- Note:
- This a constant time (O(1)) operation.
template<typename Key, typename Value, class EqualTo = std::equal_to<Key>>
Count the number of elements corresponding to key k.
- Returns:
- In the case of this map, the count will always be one if such exists in the map.
template<typename Key , typename Value , class EqualTo >
bool ACE_Array_Map< Key, Value, EqualTo >::empty |
( |
void |
|
) |
const [inline] |
Return true
if the map is empty, else false
. We recommend using is_empty()
instead since it's more consistent with the ACE container naming conventions.
template<typename Key , typename Value , class EqualTo >
template<typename Key , typename Value , class EqualTo >
template<typename Key, typename Value, class EqualTo = std::equal_to<Key>>
Remove range of elements [first, last) from the map.
- Note:
- [first, last) must be valid range within the map.
template<typename Key, typename Value, class EqualTo = std::equal_to<Key>>
Remove element corresponding to key k from the map.
- Returns:
- Number of elements that were erased.
template<typename Key, typename Value, class EqualTo = std::equal_to<Key>>
Remove element at position pos from the map.
template<typename Key, typename Value, class EqualTo = std::equal_to<Key>>
- Returns:
end()
if data corresponding to key k is not in the map.
template<typename Key, typename Value, class EqualTo = std::equal_to<Key>>
- Returns:
end()
if data corresponding to key k is not in the map.
template<typename Key, typename Value, class EqualTo = std::equal_to<Key>>
Increase size of underlying buffer by s.
template<typename Key , typename Value , class EqualTo >
template<typename InputIterator >
void ACE_Array_Map< Key, Value, EqualTo >::insert |
( |
InputIterator |
f, |
|
|
InputIterator |
l | |
|
) |
| | [inline] |
Insert range of elements into map.
template<typename Key, typename Value, class EqualTo = std::equal_to<Key>>
Insert the value x into the map.
STL-style map insertion method.
- Parameters:
-
| x | std::pair containing key and datum. |
- Returns:
std::pair::second
will be false
if the map already contains a value with the same key as x.
template<typename Key , typename Value , class EqualTo >
bool ACE_Array_Map< Key, Value, EqualTo >::is_empty |
( |
void |
|
) |
const [inline] |
Return true
if the map is empty, else false
.
template<typename Key , typename Value , class EqualTo >
Maximum number of elements the map can hold.
template<typename Key , typename Value , class EqualTo >
template<typename Key, typename Value, class EqualTo = std::equal_to<Key>>
Convenience array index operator.
Array index operator that allows insertion and retrieval of elements using an array index syntax, such as:
- map["Foo"] = 12;
template<typename Key , typename Value , class EqualTo >
template<typename Key , typename Value , class EqualTo >
template<typename Key , typename Value , class EqualTo >
template<typename Key , typename Value , class EqualTo >
template<typename Key , typename Value , class EqualTo >
Return current size of map.
- Returns:
- The number of elements in the map.
template<typename Key , typename Value , class EqualTo >
Swap the contents of this map with the given map in an exception-safe manner.
Member Data Documentation
template<typename Key, typename Value, class EqualTo = std::equal_to<Key>>
Current size of underlying array.
- Note:
capacity_
is always greater than or equal to size_
;
template<typename Key, typename Value, class EqualTo = std::equal_to<Key>>
Underlying array containing keys and data.
template<typename Key, typename Value, class EqualTo = std::equal_to<Key>>
Number of elements in the map.
The documentation for this class was generated from the following files: