C3D Toolkit
Kernel - 117936, Vision - 2.7.0.41
|
Массив простых структур данных. Подробнее...
#include <templ_s_array.h>
Открытые типы | |
typedef int(* | CompFunc) (const Type *, const Type *) |
Шаблон функции сортировки. | |
Открытые члены | |
SArray (size_t i_max=0, uint16 i_delta=1) | |
Конструктор. | |
SArray (const SArray< Type > &) | |
Конструктор копирования. | |
SArray (const std::vector< Type > &) | |
Конструктор копирования. | |
virtual | ~SArray () |
Деструктор. | |
size_t | Upper () const |
Количество элементов, под которое зарезервирована память. | |
uint16 | Delta () const |
Получить приращение по количеству элементов при выделении дополнительной памяти. | |
void | Delta (uint16 newDelta) |
Установить приращение по количеству элементов при выделении дополнительной памяти (1 - автоприращение). | |
void | SetMaxDelta (uint16 newDelta) |
Установить максимальное из приращений. | |
bool | SetSize (size_t newSize, bool clear) |
Функции, выделяющие потенциально большие участки памяти, возвращают результат операции (успех/ошибка). Подробнее... | |
bool | Reserve (size_t n, bool addAdditionalSpace=true) |
Зарезервировать место под столько элементов. | |
void | Flush () |
Обнулить количество элементов. | |
void | HardFlush () |
Освободить всю память. | |
void | Adjust () |
Удалить лишнюю память. | |
Type * | Add () |
Добавить элемент в конец массива. | |
Type * | AddItems (size_t n) |
Добавить n элементов в конец массива. | |
Type * | Add (const Type &) |
Добавить элемент в конец массива. | |
Type * | AddAt (const Type &ent, size_t index) |
Вставить элемент по индексу. | |
Type * | AddAfter (const Type &, size_t index) |
Добавить элемент после указанного. | |
Type * | InsertObj (const Type &index, const Type &ent) |
Вставить элемент перед указанным. | |
Type * | InsertInd (size_t index, const Type &) |
Вставить элемент перед указанным. | |
Type * | InsertInd (size_t index) |
Вставить пустой элемент перед указанным. | |
void | Remove (Type *firstItr, Type *lastItr) |
Удалить элементы из массива начиная с позиции firstItr до lastItr-1 включительно. | |
void | RemoveInd (size_t firstIdx, size_t lastIdx) |
Удалить элементы из массива начиная с индекса firstIdx до lastIdx-1 включительно. | |
void | RemoveInd (size_t idx) |
Удалить элемент из массива по индексу. | |
size_t | RemoveObj (const Type &delObject) |
Удалить элемент из массива. | |
bool | Fill (size_t fillCount, const Type &fillData) |
Заполнить массив значениями. | |
bool | FillZero (size_t fillCount, size_t startIndex=0) |
Заполнить массив байтами содержащими 0. | |
size_t | FindIt (const Type &) const |
Вернуть индекс элемента в массиве. | |
bool | IsExist (const Type &) const |
true если элемент найден. | |
size_t | Count () const |
Дать количество элементов массива. | |
ptrdiff_t | MaxIndex () const |
Дать количество элементов массива. | |
bool | SetCArray (const Type *o, size_t count) |
Присвоить значения из c-массива. | |
void | Swap (SArray &arr) |
Обменять местами данные массивов. | |
SArray< Type > & | operator= (const SArray< Type > &) |
Оператор присваивания. | |
SArray< Type > & | operator= (const std::vector< Type > &) |
Оператор присваивания. | |
SArray< Type > & | operator+= (const SArray< Type > &) |
Оператор слияния. | |
SArray< Type > & | operator+= (const std::vector< Type > &) |
Оператор слияния. | |
bool | operator== (const SArray< Type > &w) const |
Оператор равенства. Подробнее... | |
Type & | operator[] (size_t loc) const |
Оператор доступа по индексу. | |
void | Sort (CompFunc comp=CompareSArrayItems< Type >) |
Сортировать массив. По умолчанию сортирует в порядке возрастания. | |
const Type * | GetAddr () const |
Выдать адрес начала массива. | |
const Type * | GetEndAddr () const |
Выдать указатель конца (следующим за крайним). | |
\~russian Унификация с контейнерами STL. | |
bool | empty () const |
Проверить не пустой ли массив (т.е. не равен ли его размер 0). | |
size_t | size () const |
Дать количество элементов массива. | |
void | reserve (size_t n) |
Зарезервировать место под столько элементов. | |
void | resize (size_t n, Type val=Type()) |
Изменить размер массива. | |
size_t | capacity () const |
Под какое количество элементов выделена память? | |
void | push_back (const Type &e) |
Добавить элемент в конец массива. | |
void | pop_back () |
Удалить элемент из конца массива. | |
template<class Iterator > | |
void | insert (Iterator pos, const Type &e) |
Вставить элемент перед указанным. | |
template<class Iterator > | |
void | erase (Iterator pos) |
Удалить элемент из массива по индексу. | |
template<class Iterator > | |
void | erase (Iterator first, Iterator last) |
Удалить элементы из массива начиная с индекса first до last-1 включительно. | |
void | clear () |
Обнулить количество элементов. | |
void | shrink_to_fit () |
Удалить лишнюю память. | |
template<class Iterator > | |
void | assign (Iterator first, Iterator last) |
Присвоить массиву новое содержимое, заменив его текущее содержимое. | |
void | assign (size_t n, const Type &val) |
Присвоить массиву новое содержимое, заменив его текущее содержимое. | |
const Type * | begin () const |
Получить указатель на первый элемент массива. | |
Type * | begin () |
Получить указатель на первый элемент массива. | |
const Type * | end () const |
Получить указатель на участок памяти после массива. | |
Type * | end () |
Получить указатель на участок памяти после массива. | |
const Type * | cbegin () const |
Получить указатель на первый элемент массива. | |
const Type * | cend () const |
Получить указатель на участок памяти после массива. | |
const Type & | front () const |
Type & | front () |
const Type & | back () const |
Type & | back () |
Защищенные члены | |
bool | CatchMemory () |
Захватить память. | |
bool | AddMemory (size_t n) |
Обеспечить место под n элементов, независимо от AutoDelta. | |
size_t | AutoDelta () const |
Вычислить автоприращение. | |
TEMPLATE_FRIEND bool set_array_size | TEMPLATE_SUFFIX (SArray< Type > &, size_t newSize, bool clear) |
Перезахватить память. | |
TEMPLATE_FRIEND Type *add_n_to_array | TEMPLATE_SUFFIX (SArray< Type > &, size_t n) |
Добавить памяти под n элментов массива и вернуть указатель на начало выделеного участка памяти. | |
TEMPLATE_FRIEND size_t find_in_array | TEMPLATE_SUFFIX (const SArray< Type > &, const Type &object) |
Найти элемент в массиве. | |
TEMPLATE_FRIEND bool fill_array | TEMPLATE_SUFFIX (SArray< Type > &, size_t fillCount, const Type &fillData) |
Заполнить fillCount элементов массива копиями объекта fillData. | |
TEMPLATE_FRIEND bool fill_array_zero | TEMPLATE_SUFFIX (SArray< Type > &, size_t fillCount, size_t startIndex) |
Заполнить fillCount элементов массива нулями. | |
TEMPLATE_FRIEND reader &CALL_DECLARATION | operator>>TEMPLATE_SUFFIX (reader &in, SArray< Type > &ref) |
Оператор чтения. | |
TEMPLATE_FRIEND writer &CALL_DECLARATION | operator<<TEMPLATE_SUFFIX (writer &out, const SArray< Type > &ref) |
Оператор записи. | |
TEMPLATE_FRIEND reader &CALL_DECLARATION | operator>>TEMPLATE_SUFFIX (reader &in, SArray< Type > *&ptr) |
Оператор чтения. | |
TEMPLATE_FRIEND writer &CALL_DECLARATION | operator<<TEMPLATE_SUFFIX (writer &out, const SArray< Type > *ptr) |
Оператор записи. | |
Защищенные данные | |
size_t | count |
Количество элементов в массиве. | |
size_t | upper |
Под какое количество элементов выделена память. | |
uint16 | delta |
Приращение по количеству элементов при выделении дополнительной памяти. | |
Массив простых структур данных.
Шаблонный массив, работающий только с простыми (POD) данными, которые могут копироваться или перемещаться в памяти методом memcpy без нарушения целостности объекта. Например, в массиве нельзя хранить объекты, динамически выделяющие память или классы с указателями, а также классы с виртуальными функциями.
|
inline |
Функции, выделяющие потенциально большие участки памяти, возвращают результат операции (успех/ошибка).
Установить новый размер массива.
Оператор равенства.
Осуществляется поэлементной стравнение с возможностью перегрузки операции сравния с помощью метода IsEqualSArrayItems.