PIP 5.6.1
Platform-Independent Primitives
Классы | Открытые члены | Относящиеся к классу функции | Полный список членов класса
Шаблон класса PISet< T >

Множество уникальных значений. Подробнее...

#include <piset.h>

Граф наследования:PISet< T >:
Inheritance graph
[см. легенду]

Классы

class  const_iterator
 Константный итератор по элементам PISet. Подробнее...
 

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

 PISet ()
 Создает пустое множество.
 
 PISet (const T &value)
 Создает множество, содержащее value.
 
 PISet (const T &v0, const T &v1)
 Создает множество, содержащее v0 и v1.
 
 PISet (const T &v0, const T &v1, const T &v2)
 Создает множество, содержащее v0, v1 и v2.
 
 PISet (const T &v0, const T &v1, const T &v2, const T &v3)
 Создает множество, содержащее v0, v1, v2 и v3.
 
const_iterator begin () const
 Возвращает итератор на первый элемент.
 
const_iterator end () const
 Возвращает итератор на элемент, следующий за последним.
 
 PISet (const PIVector< T > &values)
 Создает множество из вектора values.
 
 PISet (const PIDeque< T > &values)
 Создает множество из дека values.
 
PISet< T > & operator<< (const T &t)
 Добавляет t в множество.
 
PISet< T > & operator<< (T &&t)
 Перемещает t в множество.
 
PISet< T > & operator<< (const PISet< T > &other)
 Добавляет все элементы из other.
 
bool contains (const T &t) const
 Проверяет наличие элемента t в множестве.
 
bool operator[] (const T &t) const
 Проверяет наличие элемента t в множестве.
 
PISet< T > & remove (const T &t)
 Удаляет элемент t из множества.
 
PISet< T > & unite (const PISet< T > &v)
 Объединяет множество с v.
 
PISet< T > & subtract (const PISet< T > &v)
 Удаляет все элементы, присутствующие в v.
 
PISet< T > & intersect (const PISet< T > &v)
 Оставляет только элементы, которые есть и в v.
 
PISet< T > & operator+= (const PISet< T > &v)
 Синоним unite().
 
PISet< T > & operator|= (const PISet< T > &v)
 Синоним unite().
 
PISet< T > & operator-= (const PISet< T > &v)
 Синоним subtract().
 
PISet< T > & operator&= (const PISet< T > &v)
 Синоним intersect().
 
PIVector< T > toVector () const
 Возвращает содержимое множества в виде PIVector.
 
PIDeque< T > toDeque () const
 Возвращает содержимое множества в виде PIDeque.
 
- Открытые члены унаследованные от PIMap< T, uchar >
PIMap< T, uchar > & operator<< (const PIMap< T, uchar > &other)
 Добавляет все элементы из other, перезаписывая существующие ключи.
 
 PIMap ()
 Создает пустой словарь.
 
 PIMap (const PIMap< T, uchar > &other)
 Копирующий конструктор.
 
 PIMap (PIMap< T, uchar > &&other)
 Перемещающий конструктор.
 
 PIMap (std::initializer_list< std::pair< T, uchar > > init_list)
 Создает словарь из списка инициализации C++11. Подробнее...
 
PIMap< T, uchar > & operator= (const PIMap< T, uchar > &other)
 Оператор присваивания.
 
PIMap< T, uchar > & operator= (PIMap< T, uchar > &&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
 Проверяет, содержит ли словарь элементы. Подробнее...
 
uchar & operator[] (const T &key)
 Полный доступ к элементу по ключу key. Подробнее...
 
const uchar & at (const T &key) const
 Доступ исключительно на чтение к элементу по ключу key. Подробнее...
 
uchar take (const T &key, const uchar &default_=uchar())
 Удаляет элемент с ключом key и возвращает его значение.
 
bool operator== (const PIMap< T, uchar > &m) const
 Сравнивает этот словарь с m.
 
bool operator!= (const PIMap< T, uchar > &m) const
 Сравнивает этот словарь с m.
 
bool contains (const T &key) const
 Проверяет, содержит ли словарь ключ key.
 
bool containsValue (const uchar &value) const
 Проверяет, содержит ли словарь значение value.
 
PIMap< T, uchar > & reserve (size_t new_size)
 Резервируется память под как минимум new_size элементов.
 
PIMap< T, uchar > & remove (const T &key)
 Удаляет элемент с ключом key.
 
PIMap< T, uchar > & removeWhere (std::function< bool(const T &key, const uchar &value)> test)
 Удаляет все элементы, удовлетворяющие условию, заданному в передаваемой функции test.
 
PIMap< T, uchar > & erase (const T &key)
 Синоним функции remove().
 
PIMap< T, uchar > & clear ()
 Очищает словарь. Подробнее...
 
void swap (PIMap< T, uchar > &other)
 Меняет местами этот словарь и other. Подробнее...
 
PIMap< T, uchar > & insert (const T &key, const uchar &value)
 Вставляет значение value по ключу key. Подробнее...
 
PIMap< T, uchar > & insert (const PIPair< T, uchar > &pair)
 Вставляет элемент pair. Подробнее...
 
uchar value (const T &key, const uchar &default_=uchar()) const
 Возвращает значение элемента по ключу key или default_ если такого элемента нет.
 
PIVector< uchar > values () const
 Возвращает значения всех элементов словаря.
 
key (const uchar &value, const T &default_=T()) const
 Возвращает ключ первого элемента, значение которого совпадает с value или default_ если такого элемента нет.
 
PIVector< T > keys () const
 Возвращает ключи всех элементов словаря.
 
void forEach (std::function< void(const T &key, const uchar &value)> f) const
 Вызывает f для каждого элемента словаря.
 
PIMap< Key2, T2 > map (std::function< PIPair< Key2, T2 >(const T &key, const uchar &value)> f) const
 Создает новый PIMap из результатов применения f к каждому элементу словаря.
 
PIVector< ST > map (std::function< ST(const T &key, const uchar &value)> f) const
 Создает новый PIVector из результатов применения f к каждому элементу словаря.
 
PIMap< T, uchar > filter (std::function< bool(const T &key, const uchar &value)> test) const
 Возвращает новый словарь со всеми элементами, прошедшими проверку, задаваемую в передаваемой функции bool test(const Key & key, const T & value).
 

Относящиеся к классу функции

(не члены класса)

template<typename T >
PISet< T > operator+ (const PISet< T > &v0, const PISet< T > &v1)
 Возвращает объединение двух множеств.
 
template<typename T >
PISet< T > operator- (const PISet< T > &v0, const PISet< T > &v1)
 Возвращает разность двух множеств.
 
template<typename T >
PISet< T > operator| (const PISet< T > &v0, const PISet< T > &v1)
 Возвращает объединение двух множеств.
 
template<typename T >
PISet< T > operator& (const PISet< T > &v0, const PISet< T > &v1)
 Возвращает пересечение двух множеств.
 
template<typename Type >
PICout operator<< (PICout s, const PISet< Type > &v)
 Оператор вывода в PICout.
 

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

template<typename T>
class PISet< T >

Множество уникальных значений.

Этот класс используется для хранения коллекции уникальных элементов любого типа. Вы можете добавлять значения в множество с помощью operator<< или функции insert(). Вы можете проверить, существует ли значение в множестве, используя operator[] или функцию contains(). Эти операции имеют логарифмическую сложность. Для перебора всех элементов используйте итераторы в стиле STL begin() и end().

Множество реализовано как обёртка над PIMap, где ключами являются элементы, а значениями являются фиктивные байтовые значения (используются только для хранения).

См. также
PIMap, PIVector