Apama
10.0.0.2
|
A map class which implements many of the functions on std::map. More...
#include <map_t.hpp>
Classes | |
struct | _iterator |
Forward/reverse and const/non-const iterators are implemented using this class. More... | |
Public Types | |
typedef _iterator< data_t, sag_underlying_map_table_entry_t *, pair< data_t > > | iterator |
The type of iterators on mutable maps. More... | |
typedef _iterator< const data_t, sag_underlying_map_table_entry_t const *, const pair< const data_t > > | const_iterator |
The type of iterators on const maps. More... | |
typedef pair< data_t > | element |
The type of an element in a mutable map. More... | |
typedef pair< const data_t > | const_element |
The type of an element in a const map. More... | |
Public Member Functions | |
map_t () | |
Construct an empty map. More... | |
map_t (size_t n) | |
Construct a map with (at least) capacity for n items. More... | |
~map_t () | |
Free the underlying map contents. More... | |
map_t & | operator= (map_t &&other) |
Move assignment. More... | |
map_t (map_t &&other) | |
Move constructor. More... | |
map_t (std::initializer_list< std::pair< data_t, data_t >> l) | |
Initialiser list construction. More... | |
void | swap (map_t &&other) |
Swap the contents of this map and other. More... | |
map_t | copy () const |
Return a deep copy of this map. More... | |
bool | operator== (const map_t &other) const |
Returns true if this map deep-equals other. More... | |
bool | operator!= (const map_t &other) const |
Returns false if this map deep-equals other. More... | |
iterator | begin () |
Forward iterator begin. More... | |
iterator | end () |
Forward iterator end. More... | |
const_iterator | begin () const |
Forward const_iterator begin. More... | |
const_iterator | end () const |
Forward const_iterator end. More... | |
const_iterator | cbegin () const |
Forward const_iterator begin. More... | |
const_iterator | cend () const |
Forward const_iterator end. More... | |
size_t | size () const |
Returns the number of key/value pairs in the map. More... | |
bool | empty () const |
Returns true if the map is empty (size() == 0) More... | |
data_t & | operator[] (data_t &&k) |
Return a reference to the item with the given key. More... | |
data_t & | operator[] (const data_t &k) |
Return a reference to the item with the given key. More... | |
const data_t & | operator[] (const data_t &k) const |
Return a reference to the item with the given key. More... | |
iterator | find (const data_t &k) |
Searches the map for an item with the given key and returns an iterator to that position in the map. More... | |
const_iterator | find (const data_t &k) const |
Searches the map for an item with the given key and returns an iterator to that position in the map. More... | |
std::pair< iterator, bool > | insert (const std::pair< data_t &&, data_t && > &v) |
Insert a new key/value pair into the map. More... | |
std::pair< iterator, bool > | insert (data_t &&k, data_t &&v) |
Insert a new key/value pair into the map. More... | |
size_t | erase (const data_t &k) |
Remove the item with the specified key. More... | |
void | erase (iterator it) |
Erase the item pointed to by this iterator. More... | |
void | clear () |
Empty the map and free the underlying data. More... | |
A map class which implements many of the functions on std::map.
This is an unordered map.
We don't guarantee exact method-for-method compatibility with any of the std types.
This class gives access methods to a map from data_t to data_t.
This is moveable, but not implicitly copyable. If you want to copy it use the .copy() method. If you want to move it use std::move().
No underlying implementation of the map is guaranteed. Modifying the contents will invalidate any iterators you have and any references that you have to the underlying structure.
typedef pair<const data_t> map_t::const_element |
The type of an element in a const map.
typedef _iterator<const data_t, sag_underlying_map_table_entry_t const *, const pair<const data_t> > map_t::const_iterator |
The type of iterators on const maps.
typedef pair<data_t> map_t::element |
The type of an element in a mutable map.
typedef _iterator<data_t, sag_underlying_map_table_entry_t *, pair<data_t> > map_t::iterator |
The type of iterators on mutable maps.
|
inline |
Construct an empty map.
|
explicit |
Construct a map with (at least) capacity for n items.
|
inline |
Free the underlying map contents.
|
inline |
Move constructor.
Other will be left as the empty map
Initialiser list construction.
|
inline |
Forward iterator begin.
|
inline |
Forward const_iterator begin.
|
inline |
Forward const_iterator begin.
|
inline |
Forward const_iterator end.
void map_t::clear | ( | ) |
Empty the map and free the underlying data.
|
inline |
Return a deep copy of this map.
|
inline |
Returns true if the map is empty (size() == 0)
|
inline |
Forward iterator end.
|
inline |
Forward const_iterator end.
size_t map_t::erase | ( | const data_t & | k | ) |
Remove the item with the specified key.
Returns the number of items removed (always 1)
void map_t::erase | ( | iterator | it | ) |
Erase the item pointed to by this iterator.
If the iterator is end() this is a noop.
Searches the map for an item with the given key and returns an iterator to that position in the map.
If it is not found will return end().
const_iterator map_t::find | ( | const data_t & | k | ) | const |
Searches the map for an item with the given key and returns an iterator to that position in the map.
If it is not found will return end().
Insert a new key/value pair into the map.
If the key already exists then the map is not modified and an iterator to the existing item is returned. Returns pair<iterator, bool> where the iterator points to the item with the given key and the boolean is true if the map needed to be modified with the new pair.
This is a move operator from the data_ts, so they will be left in the empty state. If you do not want this, use .copy(), otherwise use std::move
Insert a new key/value pair into the map.
If the key already exists then the map is not modified and an iterator to the existing item is returned. Returns pair<iterator, bool> where the iterator points to the item with the given key and the boolean is true if the map needed to be modified with the new pair.
This is a move operator from the data_ts, so they will be left in the empty state. If you do not want this, use .copy(), otherwise use std::move
|
inline |
Returns false if this map deep-equals other.
Move assignment.
Other will be left as the empty map and our previous contents will be freed.
|
inline |
Returns true if this map deep-equals other.
Return a reference to the item with the given key.
If k is not in the map then it inserts it and returns a reference to that
Return a reference to the item with the given key.
If k is not in the map then it inserts it and returns a reference to that
Return a reference to the item with the given key.
If k is not in the map then throws std::runtime_error
|
inline |
Returns the number of key/value pairs in the map.
|
inline |
Swap the contents of this map and other.