Cocos2d-x  v3.17
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Groups Pages
Map< K, V > Class Template Reference

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. More...
 
typedef RefMap::const_iterator const_iterator
 Const iterator, can be used to loop the Map. More...
 

Public Member Functions

iterator begin ()
 Return iterator to beginning. More...
 
const_iterator begin () const
 Return const_iterator to beginning. More...
 
iterator end ()
 Return iterator to end. More...
 
const_iterator end () const
 Return const_iterator to end. More...
 
const_iterator cbegin () const
 Return const_iterator to beginning. More...
 
const_iterator cend () const
 Return const_iterator to end. More...
 
 Map ()
 Default constructor.
 
 Map (ssize_t capacity)
 Constructor with capacity. More...
 
 Map (const Map< K, V > &other)
 Copy constructor. More...
 
 Map (Map< K, V > &&other)
 Move constructor. More...
 
 ~Map ()
 Destructor. More...
 
void reserve (ssize_t capacity)
 Sets capacity of the map. More...
 
ssize_t bucketCount () const
 Returns the number of buckets in the Map container. More...
 
ssize_t bucketSize (ssize_t n) const
 Returns the number of elements in bucket n. More...
 
ssize_t bucket (const K &k) const
 Returns the bucket number where the element with key k is located. More...
 
ssize_t size () const
 The number of elements in the map. More...
 
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. More...
 
std::vector< K > keys (V object) const
 Returns all keys that matches the object. More...
 
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.
 
getRandomObject () const
 Gets a random object in the map. More...
 
Map< K, V > & operator= (const Map< K, V > &other)
 Copy assignment operator. More...
 
Map< K, V > & operator= (Map< K, V > &&other)
 Move assignment operator. More...
 

Detailed Description

template<class K, class V>
class cocos2d::Map< K, V >

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.

Warning
The element should be Ref or its sub-class.

Member Typedef Documentation

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.

Constructor & Destructor Documentation

Map ( ssize_t  capacity)
inlineexplicit

Constructor with capacity.

Map ( const Map< K, V > &  other)
inline

Copy constructor.

Map ( Map< K, V > &&  other)
inline

Move constructor.

~Map ( )
inline

Destructor.

It will release all objects in map.

Member Function Documentation

iterator begin ( )
inline

Return iterator to beginning.

const_iterator begin ( ) const
inline

Return const_iterator to beginning.

iterator end ( )
inline

Return iterator to end.

const_iterator end ( ) const
inline

Return const_iterator to end.

const_iterator cbegin ( ) const
inline

Return const_iterator to beginning.

const_iterator cend ( ) const
inline

Return const_iterator to end.

void reserve ( ssize_t  capacity)
inline

Sets capacity of the map.

ssize_t bucketCount ( ) const
inline

Returns the number of buckets in the Map container.

ssize_t bucketSize ( ssize_t  n) const
inline

Returns the number of elements in bucket n.

ssize_t bucket ( const K &  k) const
inline

Returns the bucket number where the element with key k is located.

ssize_t size ( ) const
inline

The number of elements in the map.

bool empty ( ) const
inline

Returns a bool value indicating whether the map container is empty, i.e.

whether its size is 0.

Note
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.
std::vector<K> keys ( ) const
inline

Returns all keys in the map.

std::vector<K> keys ( object) const
inline

Returns all keys that matches the object.

const V at ( const K &  key) const
inline

Returns a reference to the mapped value of the element with key k in the map.

Note
If key does not match the key of any element in the container, the function return nullptr.
Parameters
keyKey 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).
const_iterator find ( const K &  key) const
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).

Parameters
keyKey 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).
void insert ( const K &  key,
object 
)
inline

Inserts new elements in the map.

Note
If the container has already contained the key, this function will erase the old pair(key, object) and insert the new pair.
Parameters
keyThe key to be inserted.
objectThe object to be inserted.
iterator erase ( const_iterator  position)
inline

Removes an element with an iterator from the Map<K, V> container.

Parameters
positionIterator pointing to a single element to be removed from the Map<K, V>. Member type const_iterator is a forward iterator type.
size_t erase ( const K &  k)
inline

Removes an element with an iterator from the Map<K, V> container.

Parameters
kKey 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).
void erase ( const std::vector< K > &  keys)
inline

Removes some elements with a vector which contains keys in the map.

Parameters
keysKeys of elements to be erased.
V getRandomObject ( ) const
inline

Gets a random object in the map.

Returns
Returns the random object if the map isn't empty, otherwise it returns nullptr.
Map<K, V>& operator= ( const Map< K, V > &  other)
inline

Copy assignment operator.

Map<K, V>& operator= ( Map< K, V > &&  other)
inline

Move assignment operator.


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