template <class K, class T, class HashFn = StdHash<K> >
class VectorMap : public MoveableAndDeepCopyOption<VectorMap<K, T, HashFn> >, public AMap< K, T, Vector<T>, HashFn >
K |
Type of keys. K must have deep copy constructor, be moveable and must have operator== defined. |
HashFn |
Hashing class. Must have defined unsigned operator()(const K& x) method returning hash value for elements. |
Vector flavor of map. Inherits most of its functionality from AMap and adds only members specific for its flavor.
Like any other NTL container, VectorMap is moveable type with pick and optional deep copy transfer semantics. Calling methods of picked VectorMap is logic error with exception of:
void operator=(pick_ VectorMap& v) (defined by composition)
void operator<<=(const AMap& v) (defined in AMap)
void Clear()
bool IsPicked() const
Optional deep copy operator is inherited from AMap class. Pick operator is implicitly defined by composition.
VectorMap()
Default constructor. Constructs empty VectorMap.
VectorMap(std::initializer_list<std::pair<K, T>> init)
C++ 11 initialization.
template <class KK, class TT> VectorMap& operator()(KK&& k, TT&& v)
Same as Add(k, v), returns *this. Syntax sugar for creating map. Note the use of universal reference that gets resolved to correct Add variant.
VectorMap(const VectorMap& s, int)
Optional deep copy constructor.
Requires T to have deep copy constructor or optional deep copy constructor.
VectorMap(Index<K>&& ndx, Vector<T>&& val)
Pick-constructs VectorMap from Index of keys and Vector of values. Both source containers should have the same number of elements.
VectorMap(Vector<K>&& ndx, Vector<T>&& val)
Pick-constructs VectorMap from Vector of keys and Vector of values. Both source containers should have the same number of elements.
T Pop()
Drops last element of VectorMap and returns its value.
|
Return value |
Value of dropped element. |
|