C3D Toolkit  Kernel - 105122, Vision - 0.181114.105122

Упорядоченный одномерный массив. Подробнее...

Граф наследования:CSSArray< Type >:
[см. легенду]
Граф связей класса CSSArray< Type >:
[см. легенду]

Открытые члены

 CSSArray (size_t maxCnt=0, uint16 delt=1)
 Конструктор.
 
 CSSArray (const CSSArray< Type > &other)
 Конструктор копирования.
 
 CSSArray (const SArray< Type > &other, SArray< Type > *del=NULL)
 Конструктор копирования.
 
 CSSArray (const SArray< std::pair< Type, Type > > &other, bool addFirst, SArray< Type > *del=NULL)
 Конструктор копирования.
 
void AddNoSort (const Type &ent)
 Добавить элемент без сортировки.
 
Type * Add (const Type &)
 Добавить элемент с упорядочиванием по массиву.
 
Type * Add (const Type &, size_t &indexEnt)
 Добавить элемент с упорядочиванием по массиву, возвращает индекс.
 
size_t Find (const Type &)
 Найти элемент в упорядоченном массиве.
 
void Sort (SArray< Type > *del=NULL)
 Выполнить сортировку элементов массива.
 
size_t RemoveObj (const Type &delObject)
 Удалить элемент из массива.
 
void SetNoSort ()
 Сбросить флаг сортированности.
 
void AddArray (const CSSArray< Type > &arr, bool doSort)
 Добавить массив.
 
void AddArray (const SArray< Type > &arr, bool doSort)
 Добавить массив.
 
bool IsSorted () const
 Вернуть вризнак сортированности массива.
 

Дополнительные унаследованные члены

- Защищенные типы унаследованные от SArray< Type >
typedef int(* CompFunc) (const Type *, const Type *)
 Шаблон функции сортировки.
 
- Защищенные члены унаследованные от SArray< Type >
void CatchMemory ()
 Захватить память.
 
void AddMemory (size_t n)
 Обеспечить место под n элементов, независимо от AutoDelta.
 
size_t AutoDelta () const
 Вычислить автоприращение.
 
TEMPLATE_FRIEND void 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 void fill_array TEMPLATE_SUFFIX (SArray< Type > &, size_t fillCount, const Type &fillData)
 Заполнить fillCount элементов массива копиями объекта fillData.
 
TEMPLATE_FRIEND void 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)
 Оператор записи.
 
 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)
 Установить максимальное из приращений.
 
void SetSize (size_t newSize, bool clear)
 Установить новый размер массива.
 
void 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)
 Удалить элемент из массива.
 
void Fill (size_t fillCount, const Type &fillData)
 Заполнить массив значениями.
 
void 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
 Дать количество элементов массива.
 
void 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
 Выдать указатель конца (следующим за крайним).
 
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 ()
 
- Защищенные данные унаследованные от SArray< Type >
size_t count
 Количество элементов в массиве.
 
size_t upper
 Под какое количество элементов выделена память.
 
uint16 delta
 Приращение по количеству элементов при выделении дополнительной памяти.
 

Подробное описание

template<class Type>
class CSSArray< Type >

Упорядоченный одномерный массив.

Упорядоченный одномерный массив объектов.
У объектов массива должны быть операторы "==" и "<". Имеется возможность добавлять несортированные данные через функцию AddNoSort, но при первом обращении к функциям Add и Find произойдет сортировка Одинаковые объекты не добавляются.


Объявления и описания членов класса находятся в файле: