![]() |
PIP 5.5.3
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 | contains (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()) |
Вставляет значение 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 |
Верхний элемент стека.