BornAgain  1.18.0
Simulate and fit neutron and x-ray scattering at grazing incidence
LabelMap< Key > Class Template Reference
Inheritance diagram for LabelMap< Key >:
Collaboration diagram for LabelMap< Key >:

Public Types

typedef std::pair< Key, std::string > entry_t
 
typedef std::list< entry_tlist_t
 
typedef list_t::iterator iterator
 
typedef list_t::const_iterator const_iterator
 
typedef std::unordered_map< Key, iteratormap_t
 

Public Member Functions

void clear ()
 
const_iterator begin () const
 
iterator begin ()
 
const_iterator end () const
 
iterator end ()
 
size_t size () const
 
bool empty () const
 
void insert (const Key &key, const std::string &object)
 
iterator find (const Key &key)
 
const_iterator find (const Key &key) const
 
size_t erase (const Key &key)
 
const std::string & value (const Key &key) const
 
const std::string & operator[] (const Key &key)
 

Private Attributes

map_t m_map
 
list_t m_list
 

Detailed Description

template<class Key>
class LabelMap< Key >

Definition at line 38 of file SampleLabelHandler.h.

Member Typedef Documentation

◆ entry_t

typedef std::pair<Key, std::string > OrderedMap< Key, std::string >::entry_t
inherited

Definition at line 31 of file OrderedMap.h.

◆ list_t

typedef std::list<entry_t> OrderedMap< Key, std::string >::list_t
inherited

Definition at line 32 of file OrderedMap.h.

◆ iterator

typedef list_t::iterator OrderedMap< Key, std::string >::iterator
inherited

Definition at line 33 of file OrderedMap.h.

◆ const_iterator

typedef list_t::const_iterator OrderedMap< Key, std::string >::const_iterator
inherited

Definition at line 34 of file OrderedMap.h.

◆ map_t

typedef std::unordered_map<Key, iterator> OrderedMap< Key, std::string >::map_t
inherited

Definition at line 35 of file OrderedMap.h.

Member Function Documentation

◆ clear()

void OrderedMap< Key, std::string >::clear ( )
inlineinherited

Definition at line 40 of file OrderedMap.h.

41  {
42  m_map.clear();
43  m_list.clear();
44  }

◆ begin() [1/2]

const_iterator OrderedMap< Key, std::string >::begin ( ) const
inlineinherited

Definition at line 46 of file OrderedMap.h.

46 { return m_list.begin(); }

◆ begin() [2/2]

iterator OrderedMap< Key, std::string >::begin ( )
inlineinherited

Definition at line 48 of file OrderedMap.h.

48 { return m_list.begin(); }

◆ end() [1/2]

const_iterator OrderedMap< Key, std::string >::end ( ) const
inlineinherited

Definition at line 47 of file OrderedMap.h.

47 { return m_list.end(); }

◆ end() [2/2]

iterator OrderedMap< Key, std::string >::end ( )
inlineinherited

Definition at line 49 of file OrderedMap.h.

49 { return m_list.end(); }

◆ size()

size_t OrderedMap< Key, std::string >::size ( ) const
inlineinherited

Definition at line 51 of file OrderedMap.h.

52  {
53  ASSERT(m_list.size() == m_map.size());
54  return m_list.size();
55  }
#define ASSERT(condition)
Definition: Assert.h:26

◆ empty()

bool OrderedMap< Key, std::string >::empty ( ) const
inlineinherited

Definition at line 56 of file OrderedMap.h.

56 { return size() == 0; }

◆ insert()

void OrderedMap< Key, std::string >::insert ( const Key &  key,
const std::string &  object 
)
inlineinherited

Definition at line 59 of file OrderedMap.h.

60  {
61  erase(key);
62  iterator it = m_list.insert(m_list.end(), std::make_pair(key, object));
63  m_map[key] = it;
64  }
list_t::iterator iterator
Definition: OrderedMap.h:33
size_t erase(const Key &key)
Definition: OrderedMap.h:84

◆ find() [1/2]

iterator OrderedMap< Key, std::string >::find ( const Key &  key)
inlineinherited

Definition at line 66 of file OrderedMap.h.

67  {
68  iterator result = m_list.end();
69  if (m_map.find(key) != m_map.end()) {
70  result = m_map[key];
71  }
72  return result;
73  }

◆ find() [2/2]

const_iterator OrderedMap< Key, std::string >::find ( const Key &  key) const
inlineinherited

Definition at line 75 of file OrderedMap.h.

76  {
77  const_iterator result = m_list.end();
78  if (m_map.find(key) != m_map.end()) {
79  result = m_map[key];
80  }
81  return result;
82  }
list_t::const_iterator const_iterator
Definition: OrderedMap.h:34

◆ erase()

size_t OrderedMap< Key, std::string >::erase ( const Key &  key)
inlineinherited

Definition at line 84 of file OrderedMap.h.

85  {
86  size_t result(0);
87  if (m_map.find(key) == m_map.end())
88  return result;
89  iterator it = m_map[key];
90  m_list.erase(it);
91  m_map.erase(key);
92  return 1;
93  }

◆ value()

const std::string & OrderedMap< Key, std::string >::value ( const Key &  key) const
inlineinherited

Definition at line 95 of file OrderedMap.h.

96  {
97  typename map_t::const_iterator mit = m_map.find(key);
98  if (mit == m_map.end()) {
99  throw std::runtime_error("OrderedMap::value() -> No such key");
100  }
101  const_iterator it = mit->second;
102  return (*it).second;
103  }

◆ operator[]()

const std::string & OrderedMap< Key, std::string >::operator[] ( const Key &  key)
inlineinherited

Definition at line 105 of file OrderedMap.h.

105 { return value(key); }
const std::string & value(const Key &key) const
Definition: OrderedMap.h:95

Member Data Documentation

◆ m_map

map_t OrderedMap< Key, std::string >::m_map
privateinherited

Definition at line 108 of file OrderedMap.h.

◆ m_list

list_t OrderedMap< Key, std::string >::m_list
privateinherited

Definition at line 109 of file OrderedMap.h.


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