| OpenTTD
    | 
Hand-rolled multimap as map of lists. More...
#include <multimap.hpp>
| Public Types | |
| typedef std::list< Tvalue > | List | 
| typedef List::iterator | ListIterator | 
| typedef List::const_iterator | ConstListIterator | 
| typedef std::map< Tkey, List, Tcompare > | Map | 
| typedef Map::iterator | MapIterator | 
| typedef Map::const_iterator | ConstMapIterator | 
| typedef MultiMapIterator < MapIterator, ListIterator, Tkey, Tvalue, Tcompare > | iterator | 
| typedef MultiMapIterator < ConstMapIterator, ConstListIterator, Tkey, const Tvalue, Tcompare > | const_iterator | 
| Public Member Functions | |
| iterator | erase (iterator it) | 
| Erase the value pointed to by an iterator. | |
| void | Insert (const Tkey &key, const Tvalue &val) | 
| Insert a value at the end of the range with the specified key. | |
| size_t | size () const | 
| Count all items in this MultiMap. | |
| size_t | MapSize () const | 
| Count the number of ranges with equal keys in this MultiMap. | |
| std::pair< iterator, iterator > | equal_range (const Tkey &key) | 
| Get a pair of iterators specifying a range of items with equal keys. | |
| std::pair< const_iterator, const_iterator > | equal_range (const Tkey &key) const | 
| Get a pair of constant iterators specifying a range of items with equal keys. | |
Hand-rolled multimap as map of lists.
Behaves mostly like a list, but is sorted by Tkey so that you can easily look up ranges of equal keys. Those ranges are internally ordered in a deterministic way (contrary to STL multimap). All STL-compatible members are named in STL style, all others are named in OpenTTD style.
Definition at line 286 of file multimap.hpp.
| 
 | inline | 
Get a pair of iterators specifying a range of items with equal keys.
| key | Key to look for. | 
Definition at line 362 of file multimap.hpp.
Referenced by StationCargoList::ShiftCargo().
| 
 | inline | 
Get a pair of constant iterators specifying a range of items with equal keys.
| key | Key to look for. | 
Definition at line 377 of file multimap.hpp.
| 
 | inline | 
Erase the value pointed to by an iterator.
The iterator may be invalid afterwards.
| it | Iterator pointing at some value. | 
Definition at line 304 of file multimap.hpp.
References MultiMapIterator< Tmap_iter, Tlist_iter, Tkey, Tvalue, Tcompare >::list_iter, MultiMapIterator< Tmap_iter, Tlist_iter, Tkey, Tvalue, Tcompare >::list_valid, and MultiMapIterator< Tmap_iter, Tlist_iter, Tkey, Tvalue, Tcompare >::map_iter.
Referenced by StationCargoList::ShiftCargo(), and StationCargoList::Truncate().
| 
 | inline | 
Insert a value at the end of the range with the specified key.
| key | Key to be inserted at. | 
| val | Value to be inserted. | 
Definition at line 328 of file multimap.hpp.
Referenced by StationCargoReroute::operator()().
| 
 | inline | 
Count the number of ranges with equal keys in this MultiMap.
Definition at line 352 of file multimap.hpp.
References MultiMap< Tkey, Tvalue, Tcompare >::size().
| 
 | inline | 
Count all items in this MultiMap.
This involves iterating over the map.
Definition at line 339 of file multimap.hpp.
Referenced by MultiMap< Tkey, Tvalue, Tcompare >::MapSize().
 1.8.1.2
 1.8.1.2