Apama  10.0.0.2
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
map_t Class Reference

A map class which implements many of the functions on std::map. More...

#include <map_t.hpp>

Inheritance diagram for map_t:
metadata_t

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_telement
 The type of an element in a mutable map. More...
 
typedef pair< const data_tconst_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_toperator= (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_toperator[] (data_t &&k)
 Return a reference to the item with the given key. More...
 
data_toperator[] (const data_t &k)
 Return a reference to the item with the given key. More...
 
const data_toperator[] (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...
 

Detailed Description

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.

Member Typedef Documentation

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.

Constructor & Destructor Documentation

map_t::map_t ( )
inline

Construct an empty map.

map_t::map_t ( size_t  n)
explicit

Construct a map with (at least) capacity for n items.

map_t::~map_t ( )
inline

Free the underlying map contents.

map_t::map_t ( map_t &&  other)
inline

Move constructor.

Other will be left as the empty map

map_t::map_t ( std::initializer_list< std::pair< data_t, data_t >>  l)
inline

Initialiser list construction.

Member Function Documentation

iterator map_t::begin ( )
inline

Forward iterator begin.

const_iterator map_t::begin ( ) const
inline

Forward const_iterator begin.

const_iterator map_t::cbegin ( ) const
inline

Forward const_iterator begin.

const_iterator map_t::cend ( ) const
inline

Forward const_iterator end.

void map_t::clear ( )

Empty the map and free the underlying data.

map_t map_t::copy ( ) const
inline

Return a deep copy of this map.

bool map_t::empty ( ) const
inline

Returns true if the map is empty (size() == 0)

iterator map_t::end ( )
inline

Forward iterator end.

const_iterator map_t::end ( ) const
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.

iterator map_t::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.

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().

std::pair<iterator, bool> map_t::insert ( const std::pair< data_t &&, data_t && > &  v)

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

std::pair<iterator, bool> map_t::insert ( data_t &&  k,
data_t &&  v 
)
inline

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

bool map_t::operator!= ( const map_t other) const
inline

Returns false if this map deep-equals other.

map_t& map_t::operator= ( map_t &&  other)
inline

Move assignment.

Other will be left as the empty map and our previous contents will be freed.

bool map_t::operator== ( const map_t other) const
inline

Returns true if this map deep-equals other.

data_t& map_t::operator[] ( data_t &&  k)
inline

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

data_t& map_t::operator[] ( const data_t k)
inline

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

const data_t& map_t::operator[] ( const data_t k) const
inline

Return a reference to the item with the given key.

If k is not in the map then throws std::runtime_error

size_t map_t::size ( ) const
inline

Returns the number of key/value pairs in the map.

void map_t::swap ( map_t &&  other)
inline

Swap the contents of this map and other.


The documentation for this class was generated from the following file: