PIP 5.5.3
Platform-Independent Primitives
Открытые члены | Полный список членов класса
Шаблон класса PIQueue< T >

Класс контейнера наследованый от PIDeque с функциональностью очереди. Подробнее...

#include <piqueue.h>

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

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

 PIQueue ()
 Создает пустой массив.
 
PIDeque< T > & enqueue (const T &v)
 Кладёт элемент в очередь.
 
PIDeque< T > & enqueue (T &&v)
 Перемещает элемент в очередь.
 
dequeue ()
 Забирает и возвращает элемент из очереди. Подробнее...
 
T & head ()
 Головной (верхний) элемент очереди. Подробнее...
 
T & tail ()
 Хвостовой (нижний) элемент очереди. Подробнее...
 
PIVector< T > toVector () const
 Преобразует PIQueue в PIVector.
 
PIDeque< T > toDeque () const
 Преобразует PIQueue в PIDeque.
 
- Открытые члены унаследованные от PIDeque< T >
 PIDeque ()
 Создает пустой массив.
 
 PIDeque (const PIDeque< T > &other)
 Копирующий конструктор.
 
 PIDeque (std::initializer_list< T > init_list)
 Создает массив из списка инициализации C++11. Подробнее...
 
 PIDeque (const T *data, size_t size)
 Создает массив из указателя на данные data и размер size. То есть выделяет память для size элементов и копирует данные из указателя data.
 
 PIDeque (size_t pid_size, const T &e=T())
 Создает массив из size элементов заполненных e.
 
 PIDeque (size_t piv_size, std::function< T(size_t i)> f)
 Создает массив из size элементов созданных функцией f(size_t i). Подробнее...
 
 PIDeque (PIDeque< T > &&other)
 Перемещающий конструктор.
 
PIDeque< T > & operator= (const PIDeque< T > &other)
 Оператор присваивания.
 
PIDeque< T > & operator= (PIDeque< T > &&other)
 Оператор перемещающего присваивания.
 
iterator begin ()
 Итератор на первый элемент. Подробнее...
 
iterator end ()
 Итератор на элемент, следующий за последним элементом. Подробнее...
 
reverse_iterator rbegin ()
 Обратный итератор на первый элемент. Подробнее...
 
reverse_iterator rend ()
 Обратный итератор на элемент, следующий за последним элементом. Подробнее...
 
size_t size () const
 Количество элементов массива. Подробнее...
 
ssize_t size_s () const
 Количество элементов массива в виде знакового числа. Подробнее...
 
size_t length () const
 Синоним size(). Подробнее...
 
size_t capacity () const
 Количество элементов, для которого сейчас выделена память массивом. Подробнее...
 
bool isEmpty () const
 Проверяет пуст ли массив. Подробнее...
 
bool isNotEmpty () const
 Проверяет не пуст ли массив. Подробнее...
 
bool any (std::function< bool(const T &e)> test) const
 Проверяет, удовлетворяет ли какой-либо элемент массива условию, заданному в передаваемой функции test. Подробнее...
 
bool every (std::function< bool(const T &e)> test) const
 Проверяет, удовлетворяют ли все элементы массива условию, заданному в передаваемой функции test. Подробнее...
 
T & operator[] (size_t index)
 Полный доступ к элементу по индексу index. Подробнее...
 
const T & at (size_t index) const
 Доступ исключительно на чтение к элементу по индексу index. Подробнее...
 
const T & atWhere (std::function< bool(const T &e)> test, ssize_t start=0, const T &def=T()) const
 Возвращает первый элемент массива, проходящего по условию, заданному в передаваемой функции test, или def если такого элемента нет. Подробнее...
 
const T & lastAtWhere (std::function< bool(const T &e)> test, ssize_t start=-1, const T &def=T()) const
 Возвращает последний элемент массива, проходящего по условию, заданному в передаваемой функции test, или def если такого элемента нет. Подробнее...
 
T & back ()
 Последний элемент массива. Подробнее...
 
T & front ()
 Первый элемент массива. Подробнее...
 
bool operator== (const PIDeque< T > &v) const
 Оператор сравнения с массивом v.
 
bool operator!= (const PIDeque< T > &v) const
 Оператор сравнения с массивом v.
 
bool contains (const T &e, ssize_t start=0) const
 Проверяет наличие элемента e в массиве. Подробнее...
 
bool contains (const PIDeque< T > &v, ssize_t start=0) const
 Проверяет наличие всех элементов v в массиве. Подробнее...
 
int entries (const T &e, ssize_t start=0) const
 Подсчитывает количество элементов, совпадающих с элементом e в массиве. Подробнее...
 
int entries (std::function< bool(const T &e)> test, ssize_t start=0) const
 Подсчитывает количество элементов в массиве, проходящих по условию, заданному в передаваемой функции test. Подробнее...
 
ssize_t indexOf (const T &e, ssize_t start=0) const
 Возвращает первый индекс, по которому данный элемент e может быть найден в массиве или -1, если такого индекса нет. Подробнее...
 
ssize_t indexWhere (std::function< bool(const T &e)> test, ssize_t start=0) const
 Возвращает первый индекс элемента проходящего по условию, заданному в передаваемой функции test, или -1, если таких элементов нет. Подробнее...
 
ssize_t lastIndexOf (const T &e, ssize_t start=-1) const
 Возвращает последний индекс, по которому данный элемент e может быть найден в массиве или -1, если такого индекса нет. Подробнее...
 
ssize_t lastIndexWhere (std::function< bool(const T &e)> test, ssize_t start=-1) const
 Возвращает последний индекс элемента проходящего по условию, заданному в передаваемой функции test, или -1, если таких элементов нет. Подробнее...
 
T * data (size_t index=0)
 Указатель на память массива Подробнее...
 
const T * data (size_t index=0) const
 Указатель на память массива только для чтения. Подробнее...
 
PIDeque< T > getRange (size_t index, size_t count) const
 Создает подмассив, то есть кусок из текущего массива. Подробнее...
 
template<typename T1 = T, typename std::enable_if<!std::is_trivially_copyable< T1 >::value, int >::type = 0>
PIDeque< T > & clear ()
 Очищает массив, удаляет все элементы. Подробнее...
 
PIDeque< T > & fill (const T &e=T())
 Заполняет весь массив копиями элемента 'e'. Подробнее...
 
PIDeque< T > & fill (std::function< T(size_t i)> f)
 Заполняет весь массив результатом вызова функции 'f(size_t i)'. Подробнее...
 
PIDeque< T > & assign (const T &e=T())
 Тоже самое что и fill(). Подробнее...
 
template<typename T1 = T, typename std::enable_if<!std::is_trivially_copyable< T1 >::value, int >::type = 0>
PIDeque< T > & assign (size_t new_size, const T &e)
 Сначала делает resize(new_size), затем fill(e). Подробнее...
 
PIDeque< T > & resize (size_t new_size, const T &e=T())
 Устанавливает размер массива, новые элементы копируются из e. Подробнее...
 
PIDeque< T > & resize (size_t new_size, std::function< T(size_t i)> f)
 Устанавливает размер массива, новые элементы создаются функцией f(size_t i). Подробнее...
 
PIDeque< T > & reserve (size_t new_size)
 Резервируется память под как минимум new_size элементов. Подробнее...
 
PIDeque< T > & insert (size_t index, const T &e=T())
 Вставляет значение e в позицию index в массиве. Подробнее...
 
PIDeque< T > & insert (size_t index, T &&e)
 Вставляет значение e в позицию index в массиве. Подробнее...
 
PIDeque< T > & insert (size_t index, const PIDeque< T > &v)
 Вставляет массив v в позицию index в массиве. Подробнее...
 
PIDeque< T > & insert (size_t index, std::initializer_list< T > init_list)
 Вставляет элементы в позицию index в массиве. Подробнее...
 
PIDeque< T > & remove (size_t index, size_t count=1)
 Удаляет элементы из массива, начиная с позиции index в количестве count. Подробнее...
 
void swap (PIDeque< T > &other)
 Меняет местами массив v с этим массивом. Подробнее...
 
PIDeque< T > & sort ()
 Сортировка элементов в порядке возрастания. Подробнее...
 
PIDeque< T > & sort (std::function< bool(const T &a, const T &b)> comp)
 Сортировка элементов в порядке возрастания. Подробнее...
 
PIDeque< T > & reverse ()
 Обращает порядок следования элементов этого массива. Подробнее...
 
PIDeque< T > reversed () const
 Возвращает перевернутый массив. Подробнее...
 
PIDeque< T > & enlarge (ssize_t add_size, const T &e=T())
 Увеличивает или уменьшает размер массива на add_size элементов. Подробнее...
 
PIDeque< T > & removeOne (const T &e)
 Удаляет первый элемент, который равен элементу e. Подробнее...
 
PIDeque< T > & removeAll (const T &e)
 Удаляет все элементы, равные элементу e. Подробнее...
 
PIDeque< T > & removeWhere (std::function< bool(const T &e)> test)
 Удаляет все элементы, удовлетворяющие условию, заданному в передаваемой функции test. Подробнее...
 
PIDeque< T > & push_back (const T &e)
 Добавляет элемент e в конец массива. Подробнее...
 
PIDeque< T > & push_back (T &&e)
 Добавляет элемент e в конец массива. Подробнее...
 
PIDeque< T > & push_back (std::initializer_list< T > init_list)
 Добавляет элементы в конец массива. Подробнее...
 
PIDeque< T > & push_back (const PIDeque< T > &v)
 Добавляет массив v в конец массива. Подробнее...
 
PIDeque< T > & append (const T &e)
 Добавляет элемент e в конец массива. Подробнее...
 
PIDeque< T > & append (T &&e)
 Добавляет элемент e в конец массива. Подробнее...
 
PIDeque< T > & append (std::initializer_list< T > init_list)
 Добавляет элементы в конец массива. Подробнее...
 
PIDeque< T > & append (const PIDeque< T > &v)
 Добавляет массив v в конец массива. Подробнее...
 
PIDeque< T > & operator<< (const T &e)
 Добавляет элемент e в конец массива. Подробнее...
 
PIDeque< T > & operator<< (T &&e)
 Добавляет элемент e в конец массива. Подробнее...
 
PIDeque< T > & operator<< (const PIDeque< T > &v)
 Добавляет массив v в конец массива. Подробнее...
 
PIDeque< T > & push_front (const T &e)
 Добавляет элемент e в начало массива. Подробнее...
 
PIDeque< T > & push_front (T &&e)
 Добавляет элемент e в начало массива. Подробнее...
 
PIDeque< T > & push_front (const PIDeque< T > &v)
 Добавляет массив v в начало массива. Подробнее...
 
PIDeque< T > & push_front (std::initializer_list< T > init_list)
 Добавляет элементы в начало массива. Подробнее...
 
PIDeque< T > & prepend (const T &e)
 Добавляет элемент e в начало массива. Подробнее...
 
PIDeque< T > & prepend (T &&e)
 Добавляет элемент e в начало массива. Подробнее...
 
PIDeque< T > & prepend (const PIDeque< T > &v)
 Добавляет массив v в начало массива. Подробнее...
 
PIDeque< T > & prepend (std::initializer_list< T > init_list)
 Добавляет элементы в начало массива. Подробнее...
 
PIDeque< T > & pop_back ()
 Удаляет один элемент с конца массива. Подробнее...
 
PIDeque< T > & pop_front ()
 Удаляет один элемент с начала массива. Подробнее...
 
take_back ()
 Удаляет один элемент с начала массива и возвращает его. Подробнее...
 
take_front ()
 Удаляет один элемент с конца массива и возвращает его. Подробнее...
 
template<typename ST >
PIDeque< ST > toType () const
 Возвращает конвертированный в другой тип массив. Подробнее...
 
PIDeque< T > filter (std::function< bool(const T &e)> test) const
 Возвращает новый массив со всеми элементами, прошедшими проверку, задаваемую в передаваемой функции bool test(const T & e). Подробнее...
 
PIDeque< T > filterIndexed (std::function< bool(size_t index, const T &e)> test) const
 Аналогично filter() но с параметром индекса index в функции test. Подробнее...
 
PIDeque< T > filterReverse (std::function< bool(const T &e)> test) const
 Аналогично filter() но от конца до начала (справа на лево). Подробнее...
 
PIDeque< T > filterReverseIndexed (std::function< bool(size_t index, const T &e)> test) const
 Аналогично filterReverse() но с параметром индекса index в функции test. Подробнее...
 
void forEach (std::function< void(const T &e)> f) const
 Выполняет функцию void f(const T & e) для каждого элемента массива. Подробнее...
 
PIDeque< T > & forEach (std::function< void(T &e)> f)
 Выполняет функцию void f(T & e) для каждого элемента массива. Подробнее...
 
void forEachIndexed (std::function< void(size_t index, const T &e)> f) const
 Аналогично forEach() но с параметром индекса index в функции f. Подробнее...
 
PIDeque< T > & forEachIndexed (std::function< void(size_t index, T &e)> f)
 Аналогично forEachIndexed(), но позволяет изменять элементы массива. Подробнее...
 
void forEachReverse (std::function< void(const T &e)> f) const
 Аналогично forEach() но от конца до начала (справа на лево). Подробнее...
 
PIDeque< T > & forEachReverse (std::function< void(T &e)> f)
 Аналогично forEachReverse(), но позволяет изменять элементы массива. Подробнее...
 
void forEachReverseIndexed (std::function< void(size_t index, const T &e)> f) const
 Аналогично forEachIndexed() но от конца до начала (справа на лево). Подробнее...
 
PIDeque< T > & forEachReverseIndexed (std::function< void(size_t index, T &e)> f)
 Аналогично forEachReverseIndexed(), но позволяет изменять элементы массива. Подробнее...
 
template<typename ST >
PIDeque< ST > map (std::function< ST(const T &e)> f) const
 Создаёт новый массив с результатом вызова указанной функции ST f(const T & e) для каждого элемента массива. Подробнее...
 
template<typename ST >
PIDeque< ST > mapIndexed (std::function< ST(size_t index, const T &e)> f) const
 Аналогично map() но с параметром индекса index в функции f. Подробнее...
 
template<typename ST >
PIDeque< ST > mapReverse (std::function< ST(const T &e)> f) const
 Аналогично map() но от конца до начала (справа на лево). Подробнее...
 
template<typename ST >
PIDeque< ST > mapReverseIndexed (std::function< ST(size_t index, const T &e)> f) const
 Аналогично mapReverse() но с параметром индекса index в функции f. Подробнее...
 
template<typename ST >
ST reduce (std::function< ST(const T &e, const ST &acc)> f, const ST &initial=ST()) const
 Применяет функцию ST f(const T & e, const ST & acc) к каждому элементу массива (слева-направо), возвращает одно значение. Подробнее...
 
template<typename ST >
ST reduceIndexed (std::function< ST(size_t index, const T &e, const ST &acc)> f, const ST &initial=ST()) const
 Аналогично reduce() но с параметром индекса index в функции f. Подробнее...
 
template<typename ST >
ST reduceReverse (std::function< ST(const T &e, const ST &acc)> f, const ST &initial=ST()) const
 Аналогично reduce() но от конца до начала (справа на лево). Подробнее...
 
template<typename ST >
ST reduceReverseIndexed (std::function< ST(size_t index, const T &e, const ST &acc)> f, const ST &initial=ST()) const
 Аналогично reduceReverse() но с параметром индекса index в функции f. Подробнее...
 
PIDeque< PIDeque< T > > reshape (size_t rows, size_t cols, ReshapeOrder order=ReshapeByRow) const
 Изменяет размерность массива, из одномерного массива создает двухмерный. Подробнее...
 
template<typename C , typename std::enable_if< std::is_same< T, PIDeque< C > >::value, int >::type = 0>
PIDeque< C > flatten (ReshapeOrder order=ReshapeByRow) const
 Изменяет размерность массива, из двухмерный массива создает одномерный. Подробнее...
 
template<typename C , typename std::enable_if< std::is_same< T, PIDeque< C > >::value, int >::type = 0>
PIDeque< PIDeque< C > > reshape (size_t rows, size_t cols, ReshapeOrder order=ReshapeByRow) const
 Изменяет размерность двухмерного массива. Подробнее...
 
PIDeque< PIDeque< T > > split (const T &separator) const
 Разделяет массив на двумерный массив с помощью разделителяseparator. Подробнее...
 
PIDeque< PIDeque< T > > splitBySize (size_t sz) const
 Разделяет массив на двумерный массив по кускам не более чем sz. Подробнее...
 
PIDeque< T > takeRange (size_t index, size_t count)
 Вырезает подмассив, то есть кусок из текущего массива. Подробнее...
 

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

template<typename T>
class PIQueue< T >

Класс контейнера наследованый от PIDeque с функциональностью очереди.

Контейнер представляющий массив элементов, организованных по принципу FIFO (первым пришёл — первым вышел). Добавляет к PIDeque функции enqueue() и dequeue().

См. также
PIDeque

Методы

◆ dequeue()

template<typename T >
T PIQueue< T >::dequeue ( )
inline

Забирает и возвращает элемент из очереди.

Заметки
Эта функция предполагает, что массив не пустой. Иначе это приведёт к неопределённому поведению программы и ошибкам памяти.

◆ head()

template<typename T >
T & PIQueue< T >::head ( )
inline

Головной (верхний) элемент очереди.

Заметки
Возвращает ссылку на головной (верхний) элемент очереди. Эта функция предполагает, что массив не пустой. Иначе это приведёт к неопределённому поведению программы и ошибкам памяти.

◆ tail()

template<typename T >
T & PIQueue< T >::tail ( )
inline

Хвостовой (нижний) элемент очереди.

Возвращает ссылку на хвостовой (нижний) элемент очереди. Эта функция предполагает, что массив не пустой. Иначе это приведёт к неопределённому поведению программы и ошибкам памяти.