PIP 5.9.0
Platform-Independent Primitives
Загрузка...
Поиск...
Не найдено
Шаблон класса PIMap< Key, T >

Словарь с уникальными ключами и связанными значениями. Подробнее...

#include <pimap.h>

Открытые члены

 PIMap ()
 Создает пустой словарь.
 PIMap (const PIMap< Key, T > &other)
 Копирующий конструктор.
 PIMap (PIMap< Key, T > &&other)
 Перемещающий конструктор.
 PIMap (std::initializer_list< std::pair< Key, T > > init_list)
 Создает словарь из списка инициализации C++11.
PIMap< Key, T > & operator= (const PIMap< Key, T > &other)
 Оператор присваивания.
PIMap< Key, T > & operator= (PIMap< Key, T > &&other)
 Оператор перемещающего присваивания.
iterator begin ()
 Итератор на первый элемент.
iterator end ()
 Итератор на элемент, следующий за последним элементом.
reverse_iterator rbegin ()
 Обратный итератор на первый элемент.
reverse_iterator rend ()
 Обратный итератор на элемент, следующий за последним элементом.
size_t size () const
 Количество элементов в словаре.
int size_s () const
 Количество элементов в словаре в виде знакового числа.
size_t length () const
 Синоним size().
bool isEmpty () const
 Проверяет, пуст ли словарь.
bool isNotEmpty () const
 Проверяет, содержит ли словарь элементы.
T & operator[] (const Key &key)
 Полный доступ к элементу по ключу key.
const T & at (const Key &key) const
 Доступ исключительно на чтение к элементу по ключу key.
T take (const Key &key, const T &default_=T())
 Удаляет элемент с ключом key и возвращает его значение.
PIMap< Key, T > & operator<< (const PIMap< Key, T > &other)
 Добавляет все элементы из other, перезаписывая существующие ключи.
bool operator== (const PIMap< Key, T > &m) const
 Сравнивает этот словарь с m.
bool operator!= (const PIMap< Key, T > &m) const
 Сравнивает этот словарь с m.
bool contains (const Key &key) const
 Проверяет, содержит ли словарь ключ key.
bool containsValue (const T &value) const
 Проверяет, содержит ли словарь значение value.
PIMap< Key, T > & reserve (size_t new_size)
 Резервируется память под как минимум new_size элементов.
PIMap< Key, T > & remove (const Key &key)
 Удаляет элемент с ключом key.
PIMap< Key, T > & removeWhere (std::function< bool(const Key &key, const T &value)> test)
 Удаляет все элементы, удовлетворяющие условию, заданному в передаваемой функции test.
PIMap< Key, T > & erase (const Key &key)
 Синоним функции remove().
PIMap< Key, T > & clear ()
 Очищает словарь.
void swap (PIMap< Key, T > &other)
 Меняет местами этот словарь и other.
PIMap< Key, T > & insert (const Key &key, const T &value)
 Вставляет значение value по ключу key.
PIMap< Key, T > & insert (const PIPair< Key, T > &pair)
 Вставляет элемент pair.
T value (const Key &key, const T &default_=T()) const
 Возвращает значение элемента по ключу key или default_ если такого элемента нет.
PIVector< T > values () const
 Возвращает значения всех элементов словаря.
Key key (const T &value, const Key &default_=Key()) const
 Возвращает ключ первого элемента, значение которого совпадает с value или default_ если такого элемента нет.
PIVector< Key > keys () const
 Возвращает ключи всех элементов словаря.
void forEach (std::function< void(const Key &key, const T &value)> f) const
 Вызывает f для каждого элемента словаря.
template<typename Key2, typename T2>
PIMap< Key2, T2 > map (std::function< PIPair< Key2, T2 >(const Key &key, const T &value)> f) const
 Создает новый PIMap из результатов применения f к каждому элементу словаря.
template<typename ST>
PIVector< ST > map (std::function< ST(const Key &key, const T &value)> f) const
 Создает новый PIVector из результатов применения f к каждому элементу словаря.
PIMap< Key, T > filter (std::function< bool(const Key &key, const T &value)> test) const
 Возвращает новый словарь со всеми элементами, прошедшими проверку, задаваемую в передаваемой функции bool test(const Key & key, const T & value).

Подробное описание

template<typename Key, typename T>
class PIMap< Key, T >

Словарь с уникальными ключами и связанными значениями.

Хранит пары ключ/значение и поддерживает уникальность ключей. value() возвращает значение по ключу или значение по умолчанию, а operator[] создает значение по умолчанию для отсутствующего ключа. Для получения содержимого используйте keys() и values(), а для обхода элементов - makeIterator() или makeReverseIterator().

Конструктор(ы)

◆ PIMap()

template<typename Key, typename T>
PIMap< Key, T >::PIMap ( std::initializer_list< std::pair< Key, T > > init_list)
inline

Создает словарь из списка инициализации C++11.

PIMap <int, PIString> m{{1, "a"}, {2, "b"}};
piCout << m; // {1: a, 2: b}
#define piCout
Макрос для условного (piDebug) вывода в PICout(StdOut).
Определения picout.h:36

Методы

◆ size()

template<typename Key, typename T>
size_t PIMap< Key, T >::size ( ) const
inline

Количество элементов в словаре.

См. также
size_s(), capacity(), isEmpty(), isNotEmpty(), resize(), reserve()

◆ size_s()

template<typename Key, typename T>
int PIMap< Key, T >::size_s ( ) const
inline

Количество элементов в словаре в виде знакового числа.

См. также
size(), capacity(), isEmpty(), isNotEmpty(), resize(), reserve()

◆ length()

template<typename Key, typename T>
size_t PIMap< Key, T >::length ( ) const
inline

Синоним size().

См. также
size(), size_s(), capacity(), isEmpty(), isNotEmpty(), resize(), reserve()

◆ isEmpty()

template<typename Key, typename T>
bool PIMap< Key, T >::isEmpty ( ) const
inline

Проверяет, пуст ли словарь.

См. также
size(), size_s(), isEmpty(), isNotEmpty(), resize(), reserve()

◆ isNotEmpty()

template<typename Key, typename T>
bool PIMap< Key, T >::isNotEmpty ( ) const
inline

Проверяет, содержит ли словарь элементы.

См. также
size(), size_s(), isEmpty(), isNotEmpty(), resize(), reserve()

◆ operator[]()

template<typename Key, typename T>
T & PIMap< Key, T >::operator[] ( const Key & key)
inline

Полный доступ к элементу по ключу key.

Если элемента с таким ключом key не существует, то он будет создан конструктором по умолчанию и добавлен в словарь по ключу key, а затем возвращена ссылка на этот новый элемент.

m["огурец"] = 500;
piCout << m; // {огурец: 500}
m["лук"] = 25;
piCout << m; // {огурец: 500, лук: 25}
m["огурец"] = 350;
piCout << m; // {огурец: 350, лук: 25}
PIMap()
Создает пустой словарь.
Определения pimap.h:94
См. также
insert(), value(), key()

◆ at()

template<typename Key, typename T>
const T & PIMap< Key, T >::at ( const Key & key) const
inline

Доступ исключительно на чтение к элементу по ключу key.

Заметки
Элемент по ключу key должен существовать, иначе это приведёт к неопределённому поведению программы и ошибкам памяти.
См. также
operator[](), value(), key()

◆ clear()

template<typename Key, typename T>
PIMap< Key, T > & PIMap< Key, T >::clear ( )
inline

Очищает словарь.

Заметки
Зарезервированная память не освободится.
См. также
resize()

◆ swap()

template<typename Key, typename T>
void PIMap< Key, T >::swap ( PIMap< Key, T > & other)
inline

Меняет местами этот словарь и other.

Эта операция выполняется мгновенно без копирования памяти и никогда не дает сбоев.

◆ insert() [1/2]

template<typename Key, typename T>
PIMap< Key, T > & PIMap< Key, T >::insert ( const Key & key,
const T & value )
inline

Вставляет значение value по ключу key.

Если элемент с ключом key уже существует, то он будет перезаписан на значение value.

◆ insert() [2/2]

template<typename Key, typename T>
PIMap< Key, T > & PIMap< Key, T >::insert ( const PIPair< Key, T > & pair)
inline

Вставляет элемент pair.

Первый элемент пары является ключом, а второй значением.