188 lines
4.8 KiB
C++
188 lines
4.8 KiB
C++
/** \class PIMap
|
|
* @brief Associative array
|
|
* \details This class used to store Key = Value array of any
|
|
* type of data. \a value() returns value for key and leave map
|
|
* unchaged in any case. \a operator [] create entry in map if
|
|
* there is no entry for given key. You can retrieve all
|
|
* keys by method \a keys() and all values by methos \a values().
|
|
* To iterate all entries use class PIMapIterator, or methods
|
|
* \a makeIterator() and \a makeReverseIterator().
|
|
|
|
* \fn PIMap::PIMap();
|
|
* @brief Contructs an empty map
|
|
|
|
* \fn PIMap::PIMap(const PIMap & other);
|
|
* @brief Contructs a copy of "other"
|
|
|
|
* \fn PIMap & PIMap::operator =(const PIMap & other);
|
|
* @brief Copy operator
|
|
|
|
* \fn PIMap::PIMap(const PIMap & other);
|
|
* @brief Contructs a copy of "other"
|
|
|
|
* \fn PIMapIterator PIMap::makeIterator() const
|
|
* @brief Returns PIMapIterator for this map
|
|
|
|
* \fn PIMapIterator PIMap::makeReverseIterator() const
|
|
* @brief Returns reverse PIMapIterator for this map
|
|
|
|
|
|
* \fn size_t PIMap::size() const
|
|
* @brief Returns entries count
|
|
|
|
* \fn int PIMap::size_s() const
|
|
* @brief Returns entries count
|
|
|
|
* \fn size_t PIMap::length() const
|
|
* @brief Returns entries count
|
|
|
|
* \fn bool PIMap::isEmpty() const
|
|
* @brief Returns if map is empty
|
|
|
|
|
|
* \fn T & PIMap::operator [](const Key & key)
|
|
* @brief Returns value for key "key". If there is no key in map, create one.
|
|
|
|
* \fn const T PIMap::operator [](const Key & key) const
|
|
* @brief Returns value for key "key". If there is no key in map, returns default T().
|
|
|
|
* \fn T & PIMap::at(const Key & key)
|
|
* @brief Equivalent to operator []
|
|
|
|
* \fn const T PIMap::at(const Key & key) const
|
|
* @brief Equivalent to operator []
|
|
|
|
|
|
* \fn PIMap & PIMap::operator <<(const PIMap & other)
|
|
* @brief Insert all etries of "other" to this map. Override existing values.
|
|
|
|
* \fn bool PIMap::operator ==(const PIMap & t) const
|
|
* @brief Compare operator
|
|
|
|
* \fn bool PIMap::operator !=(const PIMap & t) const
|
|
* @brief Compare operator
|
|
|
|
* \fn bool PIMap::contains(const Key & key) const
|
|
* @brief Returns "true" if map contains entry with key "key"
|
|
|
|
|
|
* \fn PIMap & PIMap::reserve(size_t new_size)
|
|
* @brief Reserve space for "new_size" entries
|
|
|
|
* \fn PIMap & PIMap::removeOne(const Key & key)
|
|
* @brief Remove entry with key "key"
|
|
|
|
* \fn PIMap & PIMap::remove(const Key & key)
|
|
* @brief Equivalent \a removeOne(key)
|
|
|
|
* \fn PIMap & PIMap::erase(const Key & key)
|
|
* @brief Equivalent \a removeOne(key)
|
|
|
|
* \fn PIMap & PIMap::clear()
|
|
* @brief Clear map
|
|
|
|
|
|
* \fn void PIMap::swap(PIMap & other)
|
|
* @brief Swap map with "other"
|
|
|
|
|
|
* \fn PIMap & PIMap::insert(const Key & key, const T & value)
|
|
* @brief Insert or rewrite entry with key "key" and value "value"
|
|
|
|
* \fn const T PIMap::value(const Key & key, const T & default = T())
|
|
* @brief Returns value for key "key". If there is no key in map, returns "default".
|
|
|
|
* \fn PIVector<T> PIMap::values() const
|
|
* @brief Returns all values as PIVector
|
|
|
|
* \fn Key PIMap::key(const T & value, const Key & default = Key()) const
|
|
* @brief Returns key for first founded value "value". If there is no such value in map, returns "default".
|
|
|
|
* \fn PIVector<Key> PIMap::keys() const
|
|
* @brief Returns all keys as PIVector
|
|
|
|
* */
|
|
|
|
|
|
|
|
|
|
/** \class PIMapIterator
|
|
* @brief Helper class to iterate over PIMap
|
|
* \details This class used to access keys and values in PIMap.
|
|
* You can use constructor to create iterator, or use \a PIMap::makeIterator()
|
|
* and \a PIMap::makeReverseIterator() methods.
|
|
*
|
|
* First usage variant:
|
|
* \code
|
|
* PIMap<int, PIString> m;
|
|
* m[1] = "one";
|
|
* m[2] = "two";
|
|
* m[4] = "four";
|
|
*
|
|
* auto it = m.makeIterator();
|
|
* while (it.next()) {
|
|
* piCout << it.key() << it.value();
|
|
* }
|
|
* // 1 one
|
|
* // 2 two
|
|
* // 4 four
|
|
* \endcode
|
|
*
|
|
* Using hasNext():
|
|
* \code
|
|
* while (it.hasNext()) {
|
|
* it.next();
|
|
* \endcode
|
|
*
|
|
* Using constructor:
|
|
* \code
|
|
* PIMapIterator<int, PIString> it(m);
|
|
* \endcode
|
|
*
|
|
* Write access:
|
|
* \code
|
|
* while (it.next()) {
|
|
* it.valueRef().append("_!");
|
|
* piCout << it.key() << it.value();
|
|
* }
|
|
*
|
|
* // 1 one_!
|
|
* // 2 two_!
|
|
* // 4 four_!
|
|
* \endcode
|
|
*
|
|
* Reverse iterator:
|
|
* \code
|
|
* auto it = m.makeReverseIterator();
|
|
* while (it.next()) {
|
|
* piCout << it.key() << it.value();
|
|
* }
|
|
*
|
|
* // 4 four
|
|
* // 2 two
|
|
* // 1 one
|
|
* \endcode
|
|
|
|
* \fn PIMapIterator(const PIMap & map, bool reverse = false)
|
|
* @brief Contructs iterator for "map". Current position is invalid.
|
|
|
|
* \fn const Key & PIMapIterator::key() const
|
|
* @brief Returns current entry key
|
|
|
|
* \fn const T & PIMapIterator::value() const
|
|
* @brief Returns current entry value
|
|
|
|
* \fn T & PIMapIterator::valueRef() const
|
|
* @brief Returns reference to current entry value
|
|
|
|
* \fn bool PIMapIterator::hasNext()
|
|
* @brief Returns if iterator can jump to next entry
|
|
|
|
* \fn bool PIMapIterator::next()
|
|
* @brief Jump to next entry and return if new position is valid.
|
|
|
|
* \fn void PIMapIterator::reset()
|
|
* @brief Reset iterator to initial position.
|
|
|
|
* */
|