A generic, implicitly shared map. More...
#include <tmap.h>
Public Member Functions | |
Map () | |
Map (const Map< Key, T > &m) | |
Map (std::initializer_list< std::pair< const Key, T > > init) | |
~Map () | |
Iterator | begin () |
ConstIterator | begin () const |
ConstIterator | cbegin () const |
Iterator | end () |
ConstIterator | end () const |
ConstIterator | cend () const |
Map< Key, T > & | insert (const Key &key, const T &value) |
Map< Key, T > & | clear () |
unsigned int | size () const |
bool | isEmpty () const |
Iterator | find (const Key &key) |
ConstIterator | find (const Key &key) const |
bool | contains (const Key &key) const |
Map< Key, T > & | erase (Iterator it) |
Map< Key, T > & | erase (const Key &key) |
T | value (const Key &key, const T &defaultValue=T()) const |
const T & | operator[] (const Key &key) const |
T & | operator[] (const Key &key) |
Map< Key, T > & | operator= (const Map< Key, T > &m) |
Map< Key, T > & | operator= (std::initializer_list< std::pair< const Key, T > > init) |
void | swap (Map< Key, T > &m) noexcept |
bool | operator== (const Map< Key, T > &m) const |
bool | operator!= (const Map< Key, T > &m) const |
Protected Member Functions | |
void | detach () |
A generic, implicitly shared map.
This implements a standard map container that associates a key with a value and has fast key-based lookups. This map is also implicitly shared making it suitable for pass-by-value usage.
TagLib::Map< Key, T >::Map | ( | ) |
Constructs an empty Map.
TagLib::Map< Key, T >::Map | ( | const Map< Key, T > & | m | ) |
Make a shallow, implicitly shared, copy of m. Because this is implicitly shared, this method is lightweight and suitable for pass-by-value usage.
TagLib::Map< Key, T >::Map | ( | std::initializer_list< std::pair< const Key, T > > | init | ) |
Constructs a Map with the contents of the braced initializer list.
TagLib::Map< Key, T >::~Map | ( | ) |
Destroys this instance of the Map.
Iterator TagLib::Map< Key, T >::begin | ( | ) |
Returns an STL style iterator to the beginning of the map. See std::map::iterator
for the semantics.
ConstIterator TagLib::Map< Key, T >::begin | ( | ) | const |
Returns an STL style iterator to the beginning of the map. See std::map::const_iterator
for the semantics.
ConstIterator TagLib::Map< Key, T >::cbegin | ( | ) | const |
Returns an STL style iterator to the beginning of the map. See std::map::const_iterator
for the semantics.
ConstIterator TagLib::Map< Key, T >::cend | ( | ) | const |
Returns an STL style iterator to the end of the map. See std::map::const_iterator
for the semantics.
Map< Key, T > & TagLib::Map< Key, T >::clear | ( | ) |
Removes all of the elements from the map. This however will not delete pointers if the mapped type is a pointer type.
bool TagLib::Map< Key, T >::contains | ( | const Key & | key | ) | const |
Returns true
if the map contains an item for key.
|
protected |
If this Map is being shared via implicit sharing, do a deep copy of the data and separate from the shared members. This should be called by all non-const subclass members without Iterator parameters.
Iterator TagLib::Map< Key, T >::end | ( | ) |
Returns an STL style iterator to the end of the map. See std::map::iterator
for the semantics.
ConstIterator TagLib::Map< Key, T >::end | ( | ) | const |
Returns an STL style iterator to the end of the map. See std::map::const_iterator
for the semantics.
Map< Key, T > & TagLib::Map< Key, T >::erase | ( | const Key & | key | ) |
Erase the item with key from the map.
Map< Key, T > & TagLib::Map< Key, T >::erase | ( | Iterator | it | ) |
Erase the item at it from the map.
Iterator TagLib::Map< Key, T >::find | ( | const Key & | key | ) |
Find the first occurrence of key.
ConstIterator TagLib::Map< Key, T >::find | ( | const Key & | key | ) | const |
Find the first occurrence of key.
Map< Key, T > & TagLib::Map< Key, T >::insert | ( | const Key & | key, |
const T & | value | ||
) |
Inserts value under key in the map. If a value for key already exists it will be overwritten.
bool TagLib::Map< Key, T >::isEmpty | ( | ) | const |
Returns true
if the map is empty.
bool TagLib::Map< Key, T >::operator!= | ( | const Map< Key, T > & | m | ) | const |
Compares this map with m and returns true
if the maps differ.
Map< Key, T > & TagLib::Map< Key, T >::operator= | ( | const Map< Key, T > & | m | ) |
Make a shallow, implicitly shared, copy of m. Because this is implicitly shared, this method is lightweight and suitable for pass-by-value usage.
Map< Key, T > & TagLib::Map< Key, T >::operator= | ( | std::initializer_list< std::pair< const Key, T > > | init | ) |
Replace the contents of the map with those of the braced initializer list
bool TagLib::Map< Key, T >::operator== | ( | const Map< Key, T > & | m | ) | const |
Compares this map with m and returns true
if all of the elements are the same.
T & TagLib::Map< Key, T >::operator[] | ( | const Key & | key | ) |
Returns a reference to the value associated with key.
const T & TagLib::Map< Key, T >::operator[] | ( | const Key & | key | ) | const |
Returns a reference to the value associated with key.
unsigned int TagLib::Map< Key, T >::size | ( | ) | const |
The number of elements in the map.
|
noexcept |
Exchanges the content of this map with the content of m.
T TagLib::Map< Key, T >::value | ( | const Key & | key, |
const T & | defaultValue = T() |
||
) | const |
Returns the value associated with key.
If the map does not contain key, it returns defaultValue. If no defaultValue is specified, it returns a default-constructed value.