CoreComponents 3.0.0
A Modern C++ Toolkit
|
Multi-map data container. More...
#include <cc/MultiMap>
Public Types | |
using | Key = K |
Key type. | |
using | Value = T |
Value type. | |
using | Item = KeyValue<K, T> |
Item type. | |
using | Order = O |
Search order. | |
Standard Iterators | |
using | value_type = Item |
Item value type. | |
using | size_type = long |
Type of the container capacity. | |
using | iterator = Iterator<BucketVector<Item>> |
Value iterator. | |
using | const_iterator = Iterator<const BucketVector<Item>> |
Readonly value iterator. | |
using | reverse_iterator = ReverseIterator<BucketVector<Item>> |
Reverse value iterator. | |
using | const_reverse_iterator = ReverseIterator<const BucketVector<Item>> |
Readonly reverse value iterator. | |
iterator | begin () |
Return iterator pointing to the first item (if any) | |
iterator | end () |
Return iterator pointing behind the last item | |
const_iterator | begin () const |
Return readonly iterator pointing to the first item (if any) | |
const_iterator | cbegin () const |
Return readonly iterator pointing to the first item (if any) | |
const_iterator | end () const |
Return readonly iterator pointing behind the last item | |
const_iterator | cend () const |
Return readonly iterator pointing behind the last item | |
reverse_iterator | rbegin () |
Return reverse iterator pointing to the last item (if any) | |
reverse_iterator | rend () |
Return reverse iterator pointing before the first item | |
const_reverse_iterator | rbegin () const |
Return readonly reverse iterator pointing to the last item (if any) | |
const_reverse_iterator | crbegin () const |
Return readonly reverse iterator pointing to the last item (if any) | |
const_reverse_iterator | rend () const |
Return reverse iterator pointing before the first item | |
const_reverse_iterator | crend () const |
Return reverse iterator pointing before the first item | |
Construction and Assignment | |
MultiMap ()=default | |
Construct an empty multi-map. | |
MultiMap (const MultiMap &other)=default | |
Construct a copy of other. | |
MultiMap (std::initializer_list< Item > items) | |
Construct with initial items. | |
MultiMap (MultiMap &&other) | |
Take over the right-side multi-map other. | |
MultiMap & | operator= (const MultiMap &other)=default |
Assign multi-map other. | |
MultiMap & | operator= (MultiMap &&other) |
Take over the right-side multi-map other. | |
List< Item > | toList () const |
Get corresponding list representation. | |
Item Access | |
Locator | head () const |
Get a locator pointing to the first item. | |
Locator | tail () const |
Get a locator pointing to the last item. | |
Locator | from (long index) const |
Get a locator pointing to the item at index. | |
long | count () const |
Get the number of items stored in the multi-map. | |
long | size () const |
Get the number of items stored in the multi-map. | |
bool | has (long i) const |
Check if i is a valid index. | |
operator bool () const | |
Check if this multi-map is non-empty. | |
long | operator+ () const |
Get the number of items stored in the multi-map. | |
const Item & | at (Locator pos) const |
Get constant reference to the item at position pos. | |
const Item & | at (long index) const |
Get constant reference to the item at index. | |
Item & | at (Locator pos) |
Get reference to the item at position pos. | |
Item & | at (long index) |
Get reference to the item at index. | |
const Item & | operator[] (long index) const |
Get constant reference to the item at index. | |
const Item & | first () const |
Get constant reference to first item. | |
const Item & | last () const |
Get constant reference to last item. | |
bool | firstIs (const Item &item) const |
Tell if item is the first item. | |
bool | lastIs (const Item &item) const |
Tell if item is the last item. | |
const Item & | min () const |
Get constant reference to the first item. | |
const Item & | max () const |
Get constant reference to the last item. | |
Multi-Map Operations | |
template<class Search = FindFirst, class Pattern > | |
bool | find (const Pattern &pattern, Out< Locator > pos=None{}) const |
Search for a key in the multi-map. | |
template<class Pattern > | |
bool | contains (const Pattern &pattern) const |
Convenience function to check if the map contains pattern. | |
template<class Pattern > | |
Locator | lowerBound (const Pattern &pattern) const |
Convenience function to find the start of a search range. | |
template<class Pattern > | |
Locator | upperBound (const Pattern &pattern) const |
Convenience function to find the end of a search range. | |
void | insert (const Key &key, const Value &value) |
Insert a new key-value pair. | |
long | remove (const Key &key) |
Remove all matching keys. | |
Positional Operations | |
void | removeAt (Locator &pos) |
Remove item at position pos (and increment pos) | |
void | removeAt (long index) |
Remove item at index. | |
Global Operations | |
template<class F > | |
void | forEach (F f) const |
Call function f for each item. | |
template<class F , class Pattern > | |
void | forEachInRange (const Pattern &lower, const Pattern &upper, F f) const |
Call function f for each item in range [lower, upper]. | |
void | deplete () |
Remove all items. | |
Comparism Operators | |
template<class Other > | |
bool | operator== (const Other &other) const |
Equality operator. | |
Multi-map data container.
K | Key type |
T | Value type |
O | Search order |
using Key = K |
Key type.
using Value = T |
Value type.
using Order = O |
Search order.
using value_type = Item |
Item value type.
using size_type = long |
Type of the container capacity.
using iterator = Iterator<BucketVector<Item>> |
Value iterator.
using const_iterator = Iterator<const BucketVector<Item>> |
Readonly value iterator.
using reverse_iterator = ReverseIterator<BucketVector<Item>> |
Reverse value iterator.
using const_reverse_iterator = ReverseIterator<const BucketVector<Item>> |
Readonly reverse value iterator.
|
default |
Construct an empty multi-map.
|
default |
Construct a copy of other.
MultiMap | ( | std::initializer_list< Item > | items | ) |
Construct with initial items.
Take over the right-side multi-map other.
|
default |
Assign multi-map other.
MultiMap & operator= | ( | MultiMap< K, T, O > && | other | ) |
Take over the right-side multi-map other.
Get corresponding list representation.
Locator head | ( | ) | const |
Get a locator pointing to the first item.
Locator tail | ( | ) | const |
Get a locator pointing to the last item.
Locator from | ( | long | index | ) | const |
Get a locator pointing to the item at index.
long count | ( | ) | const |
Get the number of items stored in the multi-map.
long size | ( | ) | const |
Get the number of items stored in the multi-map.
bool has | ( | long | i | ) | const |
Check if i is a valid index.
|
explicit |
Check if this multi-map is non-empty.
long operator+ | ( | ) | const |
Get the number of items stored in the multi-map.
Get constant reference to the item at position pos.
const Item & at | ( | long | index | ) | const |
Get constant reference to the item at index.
Get reference to the item at position pos.
Item & at | ( | long | index | ) |
Get reference to the item at index.
const Item & operator[] | ( | long | index | ) | const |
Get constant reference to the item at index.
const Item & first | ( | ) | const |
Get constant reference to first item.
const Item & last | ( | ) | const |
Get constant reference to last item.
bool firstIs | ( | const Item & | item | ) | const |
Tell if item is the first item.
bool lastIs | ( | const Item & | item | ) | const |
Tell if item is the last item.
const Item & min | ( | ) | const |
Get constant reference to the first item.
const Item & max | ( | ) | const |
Get constant reference to the last item.
bool contains | ( | const Pattern & | pattern | ) | const |
Convenience function to check if the map contains pattern.
Pattern | Pattern type (must be comparable with Key) |
pattern | Pattern to search for |
Locator lowerBound | ( | const Pattern & | pattern | ) | const |
Convenience function to find the start of a search range.
Pattern | Pattern type (must be comparable with Key) |
pattern | Pattern to search for |
Locator upperBound | ( | const Pattern & | pattern | ) | const |
Convenience function to find the end of a search range.
Pattern | Pattern type (must be comparable with Key) |
pattern | Pattern to search for |
void insert | ( | const Key & | key, |
const Value & | value ) |
Insert a new key-value pair.
key | Search key |
value | New value |
long remove | ( | const Key & | key | ) |
Remove all matching keys.
key | Search key |
void removeAt | ( | Locator & | pos | ) |
Remove item at position pos (and increment pos)
void removeAt | ( | long | index | ) |
Remove item at index.
void forEach | ( | F | f | ) | const |
Call function f for each item.
F | Function type (lambda or functor) |
f | Unary function which gets called for each item |
void forEachInRange | ( | const Pattern & | lower, |
const Pattern & | upper, | ||
F | f ) const |
Call function f for each item in range [lower, upper].
F | Function type (lambda or functor) |
lower | Lower boundary |
upper | Upper boundary |
f | Unary function which gets called for each item |
void deplete | ( | ) |
Remove all items.
iterator begin | ( | ) |
Return iterator pointing to the first item (if any)
iterator end | ( | ) |
Return iterator pointing behind the last item
const_iterator begin | ( | ) | const |
Return readonly iterator pointing to the first item (if any)
const_iterator cbegin | ( | ) | const |
Return readonly iterator pointing to the first item (if any)
const_iterator end | ( | ) | const |
Return readonly iterator pointing behind the last item
const_iterator cend | ( | ) | const |
Return readonly iterator pointing behind the last item
reverse_iterator rbegin | ( | ) |
Return reverse iterator pointing to the last item (if any)
reverse_iterator rend | ( | ) |
Return reverse iterator pointing before the first item
const_reverse_iterator rbegin | ( | ) | const |
Return readonly reverse iterator pointing to the last item (if any)
const_reverse_iterator crbegin | ( | ) | const |
Return readonly reverse iterator pointing to the last item (if any)
const_reverse_iterator rend | ( | ) | const |
Return reverse iterator pointing before the first item
const_reverse_iterator crend | ( | ) | const |
Return reverse iterator pointing before the first item