![]() |
PIP 5.9.0
Platform-Independent Primitives
|
Класс контейнера наследованый от PIVector с функциональностью стека. Подробнее...
#include <pistack.h>
Открытые члены | |
| PIStack () | |
| Создает пустой массив. | |
| PIVector< T > & | push (const T &v) |
| Кладёт элемент в стек. | |
| PIVector< T > & | push (T &&v) |
| Перемещает элемент в стек. | |
| T | pop () |
| Забирает и возвращает элемент из стека. | |
| T & | top () |
| Верхний элемент стека. | |
| PIVector< T > | toVector () const |
| Преобразует PIStack в PIVector. | |
| PIDeque< T > | toDeque () const |
| Преобразует PIStack в PIDeque. | |
| Открытые члены унаследованные от PIVector< T > | |
| PIVector () | |
| Создает пустой массив. | |
| PIVector (const T *data, size_t size) | |
| Создает массив из указателя на данные data и размер size. То есть выделяет память для size элементов и копирует данные из указателя data. | |
| PIVector (const PIVector< T > &v) | |
| Копирующий конструктор. | |
| PIVector (std::initializer_list< T > init_list) | |
| Создает массив из списка инициализации C++11. | |
| PIVector (size_t size, const T &e=T()) | |
| Создает массив из size элементов заполненных e. | |
| PIVector (size_t size, std::function< T(size_t i)> f) | |
| Создает массив из size элементов созданных функцией f(size_t i). | |
| PIVector (PIVector< T > &&v) | |
| Перемещающий конструктор. | |
| PIVector< T > & | operator= (const PIVector< T > &v) |
| Оператор присваивания. | |
| PIVector< T > & | operator= (PIVector< T > &&v) |
| Оператор перемещающего присваивания. | |
| 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 PIVector< T > &v) const |
| Оператор сравнения с массивом v. | |
| bool | operator!= (const PIVector< T > &v) const |
| Оператор сравнения с массивом v. | |
| bool | contains (const T &e, ssize_t start=0) const |
| Проверяет наличие элемента e в массиве. | |
| bool | containsAll (const PIVector< T > &v, ssize_t start=0) const |
| Проверяет наличие всех элементов v в массиве. | |
| bool | containsAny (const PIVector< 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 |
| Указатель на память массива только для чтения. | |
| PIVector< 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> | |
| PIVector< T > & | clear () |
| Очищает массив, удаляет все элементы. | |
| PIVector< T > & | fill (const T &e=T()) |
| Заполняет весь массив копиями элемента 'e'. | |
| PIVector< T > & | fill (std::function< T(size_t i)> f) |
| Заполняет весь массив результатом вызова функции 'f(size_t i)'. | |
| PIVector< T > & | assign (const T &e=T()) |
| Тоже самое что и fill(). | |
| template<typename T1 = T, typename std::enable_if<!std::is_trivially_copyable< T1 >::value, int >::type = 0> | |
| PIVector< T > & | assign (size_t new_size, const T &f) |
| Сначала делает resize(new_size), затем fill(e). | |
| PIVector< T > & | resize (size_t new_size, const T &e=T()) |
| Устанавливает размер массива, новые элементы копируются из e. | |
| PIVector< T > & | resize (size_t new_size, std::function< T(size_t i)> f) |
| Устанавливает размер массива, новые элементы создаются функцией f(size_t i). | |
| PIVector< T > & | reserve (size_t new_size) |
| Резервируется память под как минимум new_size элементов. | |
| PIVector< T > & | insert (size_t index, const T &e=T(), size_t count=1) |
| Вставляет значение e в позицию index в массиве. | |
| PIVector< T > & | insert (size_t index, T &&e) |
| Вставляет значение e в позицию index в массиве. | |
| PIVector< T > & | insert (size_t index, const PIVector< T > &v) |
| Вставляет массив v в позицию index в массиве. | |
| PIVector< T > & | insert (size_t index, std::initializer_list< T > init_list) |
| Вставляет элементы в позицию index в массиве. | |
| PIVector< T > & | remove (size_t index, size_t count=1) |
| Удаляет элементы из массива, начиная с позиции index в количестве count. | |
| void | swap (PIVector< T > &v) |
| Меняет местами массив v с этим массивом. | |
| PIVector< T > & | sort () |
| Сортировка элементов в порядке возрастания. | |
| PIVector< T > & | sort (std::function< bool(const T &a, const T &b)> comp) |
| Сортировка элементов в порядке возрастания. | |
| PIVector< T > & | reverse () |
| Обращает порядок следования элементов этого массива. | |
| PIVector< T > | reversed () const |
| Возвращает перевернутый массив. | |
| PIVector< T > & | enlarge (ssize_t add_size, const T &e=T()) |
| Увеличивает или уменьшает размер массива на add_size элементов. | |
| PIVector< T > & | removeOne (const T &e) |
| Удаляет первый элемент, который равен элементу e. | |
| PIVector< T > & | removeAll (const T &e) |
| Удаляет все элементы, равные элементу e. | |
| PIVector< T > & | removeWhere (std::function< bool(const T &e)> test) |
| Удаляет все элементы, удовлетворяющие условию, заданному в передаваемой функции test. | |
| PIVector< T > & | push_back (const T &e) |
| Добавляет элемент e в конец массива. | |
| PIVector< T > & | push_back (T &&e) |
| Добавляет элемент e в конец массива. | |
| PIVector< T > & | push_back (std::initializer_list< T > init_list) |
| Добавляет элементы в конец массива. | |
| PIVector< T > & | push_back (const PIVector< T > &v) |
| Добавляет массив v в конец массива. | |
| PIVector< T > & | append (const T &e) |
| Добавляет элемент e в конец массива. | |
| PIVector< T > & | append (T &&e) |
| Добавляет элемент e в конец массива. | |
| PIVector< T > & | append (std::initializer_list< T > init_list) |
| Добавляет элементы в конец массива. | |
| PIVector< T > & | append (const PIVector< T > &v) |
| Добавляет массив v в конец массива. | |
| PIVector< T > & | operator<< (const T &e) |
| Добавляет элемент e в конец массива. | |
| PIVector< T > & | operator<< (T &&e) |
| Добавляет элемент e в конец массива. | |
| PIVector< T > & | operator<< (const PIVector< T > &v) |
| Добавляет массив v в конец массива. | |
| PIVector< T > & | push_front (const T &e) |
| Добавляет элемент e в начало массива. | |
| PIVector< T > & | push_front (T &&e) |
| Добавляет элемент e в начало массива. | |
| PIVector< T > & | push_front (const PIVector< T > &v) |
| Добавляет массив v в начало массива. | |
| PIVector< T > & | push_front (std::initializer_list< T > init_list) |
| Добавляет элементы в начало массива. | |
| PIVector< T > & | prepend (const T &e) |
| Добавляет элемент e в начало массива. | |
| PIVector< T > & | prepend (T &&e) |
| Добавляет элемент e в начало массива. | |
| PIVector< T > & | prepend (const PIVector< T > &v) |
| Добавляет массив v в начало массива. | |
| PIVector< T > & | prepend (std::initializer_list< T > init_list) |
| Добавляет элементы в начало массива. | |
| PIVector< T > & | pop_back () |
| Удаляет один элемент с конца массива. | |
| PIVector< T > & | pop_front () |
| Удаляет один элемент с начала массива. | |
| T | take_back () |
| Удаляет один элемент с начала массива и возвращает его. | |
| T | take_front () |
| Удаляет один элемент с конца массива и возвращает его. | |
| template<typename ST> | |
| PIVector< ST > | toType () const |
| Возвращает конвертированный в другой тип массив. | |
| PIVector< T > | filter (std::function< bool(const T &e)> test) const |
| Возвращает новый массив со всеми элементами, прошедшими проверку, задаваемую в передаваемой функции bool test(const T & e). | |
| PIVector< T > | filterIndexed (std::function< bool(size_t index, const T &e)> test) const |
| Аналогично filter() но с параметром индекса index в функции test. | |
| PIVector< T > | filterReverse (std::function< bool(const T &e)> test) const |
| Аналогично filter() но от конца до начала (справа на лево). | |
| PIVector< 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) для каждого элемента массива. | |
| PIVector< 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. | |
| PIVector< T > & | forEachIndexed (std::function< void(size_t index, T &e)> f) |
| Аналогично forEachIndexed(), но позволяет изменять элементы массива. | |
| void | forEachReverse (std::function< void(const T &e)> f) const |
| Аналогично forEach() но от конца до начала (справа на лево). | |
| PIVector< T > & | forEachReverse (std::function< void(T &e)> f) |
| Аналогично forEachReverse(), но позволяет изменять элементы массива. | |
| void | forEachReverseIndexed (std::function< void(size_t index, const T &e)> f) const |
| Аналогично forEachIndexed() но от конца до начала (справа на лево). | |
| PIVector< T > & | forEachReverseIndexed (std::function< void(size_t index, T &e)> f) |
| Аналогично forEachReverseIndexed(), но позволяет изменять элементы массива. | |
| template<typename ST> | |
| PIVector< ST > | map (std::function< ST(const T &e)> f) const |
| Создаёт новый массив с результатом вызова указанной функции ST f(const T & e) для каждого элемента массива. | |
| template<typename ST> | |
| PIVector< ST > | mapIndexed (std::function< ST(size_t index, const T &e)> f) const |
| Аналогично map() но с параметром индекса index в функции f. | |
| template<typename ST> | |
| PIVector< ST > | mapReverse (std::function< ST(const T &e)> f) const |
| Аналогично map() но от конца до начала (справа на лево). | |
| template<typename ST> | |
| PIVector< 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. | |
| PIVector< PIVector< T > > | reshape (size_t rows, size_t cols, ReshapeOrder order=ReshapeByRow) const |
| Изменяет размерность массива, из одномерного массива создает двухмерный. | |
| template<typename C, typename std::enable_if< std::is_same< T, PIVector< C > >::value, int >::type = 0> | |
| PIVector< C > | flatten (ReshapeOrder order=ReshapeByRow) const |
| Изменяет размерность массива, из двухмерный массива создает одномерный. | |
| template<typename C, typename std::enable_if< std::is_same< T, PIVector< C > >::value, int >::type = 0> | |
| PIVector< PIVector< C > > | reshape (size_t rows, size_t cols, ReshapeOrder order=ReshapeByRow) const |
| Изменяет размерность двухмерного массива. | |
| PIVector< PIVector< T > > | split (const T &separator) const |
| Разделяет массив на двумерный массив с помощью разделителяseparator. | |
| PIVector< PIVector< T > > | splitBySize (size_t sz) const |
| Разделяет массив на двумерный массив по кускам не более чем sz. | |
| PIVector< T > | takeRange (size_t index, size_t count) |
| Вырезает подмассив, то есть кусок из текущего массива. | |
Класс контейнера наследованый от PIVector с функциональностью стека.
Контейнер представляющий массив элементов, организованных по принципу LIFO (последним пришёл — первым вышел). Добавляет к PIVector функции push() и pop().
|
inline |
Забирает и возвращает элемент из стека.
|
inline |
Верхний элемент стека.