PIP 5.5.3
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. Подробнее...
 
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)
 Меняет местами массив v с этим массивом. Подробнее...
 
PIMap< Key, T > & insert (const Key &key, const T &value)
 Вставляет значение value с ключом key в массив. Подробнее...
 
PIMap< Key, T > & insert (const PIPair< Key, T > &pair)
 Вставляет пару pair в массив. Подробнее...
 
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
 Выполняет функцию void f(const Key & key, const T & value) для каждого элемента массива.
 
template<typename Key2 , typename T2 >
PIMap< Key2, T2 > map (std::function< PIPair< Key2, T2 >(const Key &key, const T &value)> f) const
 Создаёт новый словарь PIMap<Key2, T2> с результатом вызова указанной функции PIPair<Key2, T2> f(const Key & key, const T & value) для каждого элемента массива.
 
template<typename ST >
PIVector< ST > map (std::function< ST(const Key &key, const T &value)> f) const
 Создаёт новый массив PIVector<ST> с результатом вызова указанной функции ST f(const Key & key, const T & value) для каждого элемента массива.
 
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 >

Словарь.

Словари, в принципе, похожи на обычные, используемые в повседневной жизни. Они хранят элементы одного и того же типа, индексируемые ключевыми значениями. Достоинство словаря в том, что он позволяет быстро получать значение, ассоциированное с заданным ключом. Ключи должны быть уникальными. Элемент В контейнеры этого типа заносятся элементы вместе с ключами, по которым их можно найти, которыми могут выступать значения любого типа. operator [] позволяет получить доступ к элементу по ключу, и если такого эелемента не было, то он будет создан.

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

◆ 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)
Definition: picout.h:35

Методы

◆ 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

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

Возвращает
true если массив пуст, false иначе.
См. также
size(), size_s(), isEmpty(), isNotEmpty(), resize(), reserve()

◆ isNotEmpty()

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

Проверяет не пуст ли массив.

Возвращает
true если массив не пуст, false иначе.
См. также
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}
См. также
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

Меняет местами массив v с этим массивом.

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

◆ 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 в массив.

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