Similar to std::unordered_map, but it will manage reference count automatically internally. More...
Public Types | |
typedef RefMap::iterator | iterator |
Iterator, can be used to loop the Map. | |
typedef RefMap::const_iterator | const_iterator |
Const iterator, can be used to loop the Map. | |
Public Member Functions | |
iterator | begin () |
Return iterator to beginning. | |
const_iterator | begin () const |
Return const_iterator to beginning. | |
iterator | end () |
Return iterator to end. | |
const_iterator | end () const |
Return const_iterator to end. | |
const_iterator | cbegin () const |
Return const_iterator to beginning. | |
const_iterator | cend () const |
Return const_iterator to end. | |
Map () | |
Default constructor. | |
Map (ssize_t capacity) | |
Constructor with capacity. | |
Map (const Map< K, V > &other) | |
Copy constructor. | |
Map (Map< K, V > &&other) | |
Move constructor. | |
~Map () | |
Destructor. More... | |
void | reserve (ssize_t capacity) |
Sets capacity of the map. | |
ssize_t | bucketCount () const |
Returns the number of buckets in the Map container. | |
ssize_t | bucketSize (ssize_t n) const |
Returns the number of elements in bucket n. | |
ssize_t | bucket (const K &k) const |
Returns the bucket number where the element with key k is located. | |
ssize_t | size () const |
The number of elements in the map. | |
bool | empty () const |
Returns a bool value indicating whether the map container is empty, i.e. More... | |
std::vector< K > | keys () const |
Returns all keys in the map. | |
std::vector< K > | keys (V object) const |
Returns all keys that matches the object. | |
const V | at (const K &key) const |
Returns a reference to the mapped value of the element with key k in the map. More... | |
const_iterator | find (const K &key) const |
Searches the container for an element with 'key' as key and returns an iterator to it if found, otherwise it returns an iterator to Map<K, V>\:\:end (the element past the end of the container). More... | |
void | insert (const K &key, V object) |
Inserts new elements in the map. More... | |
iterator | erase (const_iterator position) |
Removes an element with an iterator from the Map<K, V> container. More... | |
size_t | erase (const K &k) |
Removes an element with an iterator from the Map<K, V> container. More... | |
void | erase (const std::vector< K > &keys) |
Removes some elements with a vector which contains keys in the map. More... | |
void | clear () |
All the elements in the Map<K,V> container are dropped: their reference count will be decreased, and they are removed from the container, leaving it with a size of 0. | |
V | getRandomObject () const |
Gets a random object in the map. More... | |
Map< K, V > & | operator= (const Map< K, V > &other) |
Copy assignment operator. | |
Map< K, V > & | operator= (Map< K, V > &&other) |
Move assignment operator. | |
Similar to std::unordered_map, but it will manage reference count automatically internally.
Which means it will invoke Ref::retain() when adding an element, and invoke Ref::release() when removing an element. The element should be Ref
or its sub-class.
|
inline |
Destructor.
It will release all objects in map.
|
inline |
Returns a bool value indicating whether the map container is empty, i.e.
whether its size is 0. This function does not modify the content of the container in any way. To clear the content of an array object, member function unordered_map::clear exists.
|
inline |
Returns a reference to the mapped value of the element with key k in the map.
If key does not match the key of any element in the container, the function return nullptr. Key value of the element whose mapped value is accessed. Member type K is the keys for the elements in the container. defined in Map<K, V> as an alias of its first template parameter (Key).
|
inline |
Searches the container for an element with 'key' as key and returns an iterator to it if found, otherwise it returns an iterator to Map<K, V>\:\:end (the element past the end of the container).
Key to be searched for. Member type 'K' is the type of the keys for the elements in the container, defined in Map<K, V> as an alias of its first template parameter (Key).
|
inline |
Inserts new elements in the map.
If the container has already contained the key, this function will erase the old pair(key, object) and insert the new pair. The key to be inserted. The object to be inserted.
|
inline |
Removes an element with an iterator from the Map<K, V> container.
Iterator pointing to a single element to be removed from the Map<K, V>. Member type const_iterator is a forward iterator type.
|
inline |
Removes an element with an iterator from the Map<K, V> container.
Key of the element to be erased. Member type 'K' is the type of the keys for the elements in the container, defined in Map<K, V> as an alias of its first template parameter (Key).
|
inline |
Removes some elements with a vector which contains keys in the map.
Keys of elements to be erased.
|
inline |
Gets a random object in the map.
Returns the random object if the map isn't empty, otherwise it returns nullptr.