![]() |
PIP 5.9.0
Platform-Independent Primitives
|
Контейнер очереди, построенный поверх PIDeque. Подробнее...
#include <piqueue.h>
Открытые члены | |
| PIQueue () | |
| Создает пустую очередь. | |
| PIDeque< T > & | enqueue (const T &v) |
| Добавляет v в очередь. | |
| PIDeque< T > & | enqueue (T &&v) |
| Перемещает v в очередь. | |
| T | dequeue () |
| Извлекает и возвращает головной элемент очереди. | |
| T & | head () |
| Возвращает головной элемент очереди. | |
| T & | tail () |
| Возвращает хвостовой элемент очереди. | |
| PIVector< T > | toVector () const |
| Возвращает содержимое очереди в виде PIVector. | |
| PIDeque< T > | toDeque () const |
| Возвращает содержимое очереди в виде 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 () |
| Удаляет один элемент с начала массива. | |
| T | take_back () |
| Удаляет один элемент с начала массива и возвращает его. | |
| T | 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) |
| Вырезает подмассив, то есть кусок из текущего массива. | |
Контейнер очереди, построенный поверх PIDeque.
Хранит элементы в порядке FIFO и добавляет к PIDeque функции enqueue() и dequeue().
|
inline |
Извлекает и возвращает головной элемент очереди.
|
inline |
Возвращает головной элемент очереди.
|
inline |
Возвращает хвостовой элемент очереди.
Возвращает ссылку на хвостовой элемент очереди. Эта функция предполагает, что очередь не пуста. Иначе это приведёт к неопределённому поведению программы и ошибкам памяти.