|
| | PIVector2D () |
| | Создаёт пустой двумерный массив. Память не выделяется. Подробнее...
|
| |
| | PIVector2D (size_t rows, size_t cols, const T &f=T()) |
| | Создаёт двумерный массив заданного размера, заполненный копиями f. Подробнее...
|
| |
| | PIVector2D (size_t rows, size_t cols, const PIVector< T > &v) |
| | Создаёт двумерный массив из существующего одномерного вектора, изменяя его форму. Подробнее...
|
| |
| | PIVector2D (size_t rows, size_t cols, PIVector< T > &&v) |
| | Конструктор перемещения из существующего одномерного вектора, изменяя его форму. Подробнее...
|
| |
| | PIVector2D (const PIVector< PIVector< T > > &v) |
| | Создаёт двумерный массив из вектора векторов (рваного массива). Предполагается, что все внутренние векторы имеют одинаковый размер. Подробнее...
|
| |
| size_t | rows () const |
| | Возвращает количество строк в двумерном массиве. Подробнее...
|
| |
| size_t | cols () const |
| | Возвращает количество столбцов в двумерном массиве. Подробнее...
|
| |
| size_t | size () const |
| | Возвращает общее количество элементов (строки * столбцы). Подробнее...
|
| |
| ssize_t | size_s () const |
| | Возвращает общее количество элементов в виде знакового числа. Подробнее...
|
| |
| size_t | length () const |
| | Возвращает общее количество элементов (то же, что и size()). Подробнее...
|
| |
| size_t | capacity () const |
| | Возвращает количество элементов, для которого сейчас выделена память во внутреннем контейнере. Подробнее...
|
| |
| bool | isEmpty () const |
| | Проверяет, пуст ли массив. Подробнее...
|
| |
| bool | isNotEmpty () const |
| | Проверяет, не пуст ли массив. Подробнее...
|
| |
| T & | element (size_t row, size_t col) |
| | Возвращает ссылку на элемент по заданной строке и столбцу. Подробнее...
|
| |
|
const T & | element (size_t row, size_t col) const |
| | Возвращает константную ссылку на элемент по заданной строке и столбцу.
|
| |
| const T & | at (size_t row, size_t col) const |
| | Возвращает константную ссылку на элемент по заданной строке и столбцу Подробнее...
|
| |
|
T & | operator[] (const Index &idx) |
| | Возвращает ссылку на элемент по заданному Index.
|
| |
|
const T & | operator[] (const Index &idx) const |
| | Возвращает константную ссылку на элемент по заданному Index.
|
| |
|
T & | element (const Index &idx) |
| | Возвращает ссылку на элемент по заданному Index.
|
| |
|
const T & | element (const Index &idx) const |
| | Возвращает константную ссылку на элемент по заданному Index.
|
| |
|
const T & | at (const Index &idx) const |
| | Возвращает константную ссылку на элемент по заданному Index (проверка границ только в отладочном режиме).
|
| |
| Row | operator[] (size_t index) |
| | Возвращает прокси-объект для строки по заданному индексу для модификации. Подробнее...
|
| |
|
RowConst | operator[] (size_t index) const |
| | Возвращает прокси-объект для строки по заданному индексу только для чтения.
|
| |
| T * | data (size_t index=0) |
| | Возвращает указатель на внутренние плоские данные, начиная с опционального смещения. Подробнее...
|
| |
|
const T * | data (size_t index=0) const |
| | Возвращает константный указатель на внутренние плоские данные, начиная с опционального смещения.
|
| |
| Row | row (size_t index) |
| | Возвращает прокси-объект для строки по заданному индексу для модификации. Подробнее...
|
| |
|
RowConst | row (size_t index) const |
| | Возвращает прокси-объект для строки по заданному индексу только для чтения.
|
| |
| Col | col (size_t index) |
| | Возвращает прокси-объект для столбца по заданному индексу для модификации. Подробнее...
|
| |
|
ColConst | col (size_t index) const |
| | Возвращает прокси-объект для столбца по заданному индексу только для чтения.
|
| |
|
PIVector2D< T > & | setRow (size_t row, const RowConst &other) |
| | Заменяет строку содержимым объекта RowConst только для чтения.
|
| |
|
PIVector2D< T > & | setRow (size_t row, const PIVector< T > &other) |
| | Заменяет строку содержимым PIVector.
|
| |
| PIVector2D< T > & | addRow (const RowConst &other) |
| | Добавляет новую строку в конец массива из другого объекта Row. Подробнее...
|
| |
|
PIVector2D< T > & | addRow (const PIVector< T > &other) |
| | Добавляет новую строку в конец массива из PIVector.
|
| |
| PIVector2D< T > & | appendRows (size_t count, const T &f=T()) |
| | Добавляет count новых пустых строк в конец массива, заполненных значением f. Подробнее...
|
| |
| PIVector2D< T > & | appendColumns (size_t count, const T &f=T()) |
| | Добавляет count новых пустых столбцов в конец каждой строки массива. Подробнее...
|
| |
| PIVector2D< T > & | deleteRows (size_t row_start, size_t count) |
| | Удаляет count строк, начиная с указанного индекса строки. Подробнее...
|
| |
| PIVector2D< T > & | deleteColumns (size_t col_start, size_t count) |
| | Удаляет указанные столбцы из массива и обновляет количество столбцов. Подробнее...
|
| |
|
PIVector2D< T > & | addColumn (const ColConst &other) |
| | Добавляет новую строку в конец массива из ColConst.
|
| |
|
PIVector2D< T > & | addColumn (const PIVector< T > &other) |
| | Добавляет новую строку в конец массива из PIVector.
|
| |
| PIVector2D< T > & | resize (size_t rows, size_t cols, const T &f=T()) |
| | Изменяет размер двумерного массива. Подробнее...
|
| |
| bool | operator== (const PIVector2D< T > &t) const |
| | Оператор равенства. Подробнее...
|
| |
|
bool | operator!= (const PIVector2D< T > &t) const |
| | Оператор неравенства.
|
| |
| PIVector< PIVector< T > > | toVectors () const |
| | Преобразует двумерный массив в вектор векторов (PIVector<PIVector<T>>). Подробнее...
|
| |
|
const PIVector< T > & | asPlainVector () const |
| | Возвращает константную ссылку на внутренний плоский PIVector.
|
| |
|
PIVector< T > & | asPlainVector () |
| | Возвращает ссылку на внутренний плоский PIVector.
|
| |
|
PIVector< T > | toPlainVector () const |
| | Возвращает копию внутреннего плоского PIVector.
|
| |
| void | swap (PIVector2D< T > &other) |
| | Меняет местами этот двумерный массив с другим. Подробнее...
|
| |
| void | clear () |
| | Очищает массив, удаляя все элементы и устанавливая размеры в 0. Подробнее...
|
| |
| bool | contains (const T &e) const |
| | Проверяет, содержит ли внутренний плоский вектор элемент e. Подробнее...
|
| |
| int | entries (const T &e) const |
| | Подсчитывает количество вхождений e во внутреннем плоском векторе. Подробнее...
|
| |
| int | entries (std::function< bool(const T &e)> test) const |
| | Подсчитывает элементы в плоском векторе, проходящие test. Подробнее...
|
| |
| Index | indexOf (const T &e) const |
| | Возвращает первый индекс (строка, столбец) элемента e в двумерном массиве. Подробнее...
|
| |
| Index | indexWhere (std::function< bool(const T &e)> test, ssize_t start=0) const |
| | Возвращает первый индекс (строка, столбец) в двумерном массиве, проходящий test. Подробнее...
|
| |
| Index | lastIndexOf (const T &e, ssize_t start=-1) const |
| | Возвращает последний индекс (строка, столбец) элемента e в двумерном массиве. Подробнее...
|
| |
| Index | lastIndexWhere (std::function< bool(const T &e)> test, ssize_t start=-1) const |
| | Возвращает последний индекс (строка, столбец) в двумерном массиве, проходящий test. Подробнее...
|
| |
| bool | any (std::function< bool(const T &e)> test) const |
| | Проверяет, проходит ли какой-либо элемент в плоском векторе test. Подробнее...
|
| |
| bool | every (std::function< bool(const T &e)> test) const |
| | Проверяет, проходят ли все элементы в плоском векторе test. Подробнее...
|
| |
| PIVector2D< T > & | fill (const T &e=T()) |
| | Заполняет весь двумерный массив копиями e. Подробнее...
|
| |
| PIVector2D< T > & | fill (std::function< T(size_t i)> f) |
| | Заполняет весь двумерный массив, используя функцию-генератор f на основе плоского индекса. Подробнее...
|
| |
|
PIVector2D< T > & | assign (const T &e=T()) |
| | То же, что и fill().
|
| |
| PIVector2D< T > & | assign (size_t rows, size_t cols, const T &f=T()) |
| | Задаёт новый размер и заполняет значением. Подробнее...
|
| |
| PIVector2D< T > | transposed () const |
| | Возвращает транспонированный двумерный массив (строки становятся столбцами и наоборот). Подробнее...
|
| |
| PIVector2D< T > & | reverseRows () |
| | Изменяет порядок строк на обратный на месте. Подробнее...
|
| |
| PIVector2D< T > & | reverseColumns () |
| | Изменяет порядок столбцов в каждой строке на обратный на месте. Подробнее...
|
| |
| PIVector2D< T > | getRange (size_t rowStart, size_t rowCount, size_t colStart, size_t colCount) const |
| | Возвращает подмассив (диапазон строк и столбцов). Подробнее...
|
| |
| template<typename ST > |
| PIVector2D< ST > | map (std::function< ST(const T &e)> f) const |
| | Применяет функцию к каждому элементу и возвращает новый двумерный массив другого типа. Подробнее...
|
| |
| template<typename ST > |
| PIVector2D< ST > | mapIndexed (std::function< ST(size_t row, size_t col, const T &e)> f) const |
| | Применяет функцию (с индексами строки и столбца) к каждому элементу и возвращает новый двумерный массив. Подробнее...
|
| |
| PIVector2D< T > & | forEachRow (std::function< void(Row)> f) |
| | Применяет функцию к каждой строке (с возможностью изменения). Подробнее...
|
| |
|
void | forEachRow (std::function< void(RowConst)> f) const |
| | Применяет функцию к каждой строке (только чтение).
|
| |
|
PIVector2D< T > & | forEachColumn (std::function< void(Col)> f) |
| | Применяет функцию к каждому столбцу (с возможностью изменения).
|
| |
| void | forEachColumn (std::function< void(ColConst)> f) const |
| | Применяет функцию к каждому столбцу (только чтение). Подробнее...
|
| |
| template<typename ST > |
| ST | reduce (std::function< ST(const T &e, const ST &acc)> f, const ST &initial=ST()) const |
| | Аккумулирует значение по всем элементам. Подробнее...
|
| |
| template<typename ST > |
| ST | reduceIndexed (std::function< ST(size_t row, size_t col, const T &e, const ST &acc)> f, const ST &initial=ST()) const |
| | Аккумулирует значение по всем элементам с индексами. Подробнее...
|
| |
| PIVector2D< T > & | removeRow (size_t row) |
| | Удаляет строку из двумерного массива. Подробнее...
|
| |
| PIVector2D< T > & | removeColumn (size_t col) |
| | Удаляет столбец из двумерного массива. Подробнее...
|
| |
| PIVector2D< T > & | removeRowsWhere (std::function< bool(const RowConst &)> test) |
| | Удаляет все строки, удовлетворяющие условию. Подробнее...
|
| |
| PIVector2D< T > & | removeColumnsWhere (std::function< bool(const ColConst &)> test) |
| | Удаляет все столбцы, удовлетворяющие условию. Подробнее...
|
| |
| PIVector2D< T > | filterRows (std::function< bool(const RowConst &)> test) const |
| | Возвращает новый двумерный массив, содержащий только строки, прошедшие проверку. Подробнее...
|
| |
| PIVector2D< T > | filterColumns (std::function< bool(const ColConst &)> test) const |
| | Возвращает новый двумерный массив, содержащий только столбцы, прошедшие проверку. Подробнее...
|
| |
template<typename T>
class PIVector2D< T >
Двумерный контейнер-массив.
Этот класс используется для хранения двумерного массива элементов любого типа в виде единого непрерывного блока памяти (обычного PIVector). Доступ к элементам осуществляется с помощью операторов [][], где первый индекс — это строка, а второй — столбец. Со строками можно работать как с объектами PIVector, что позволяет изменять отдельные элементы или присваивать целые строки. Нельзя напрямую добавлять или удалять элементы, чтобы изменить размеры массива после создания (используйте resize(), addRow(), removeRow(), removeColumn() для этого), но можно изменять значения существующих элементов.