C3D Toolkit  Kernel - 108159, Vision - 191105.108159

Одномерный массив указателей на объекты. Подробнее...

#include <templ_rp_array.h>

Производные классы:FDPArray< Type >, IFC_Array< Type > [private], PArray< Type > и RPStack< Type > [private].

Открытые типы

typedef Type * TPtr
 Имя указателя на объект.
 
typedef int(* CompFunc) (const Type **, const Type **)
 Шаблон функции сортировки.
 

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

 RPArray ()
 Конструктор.
 
 RPArray (size_t i_upper, uint16 i_delta=1)
 Конструктор.
 
virtual ~RPArray ()
 Деструктор.
 
uint16 Delta () const
 Получить приращение по количеству элементов при выделении дополнительной памяти.
 
size_t Upper () const
 Количество элементов, для которых выделена память?
 
void Delta (uint16 newDelta)
 Установить приращение по количеству элементов при выделении дополнительной памяти (1 - автоприращение).
 
void SetMaxDelta (uint16 newDelta)
 Установить максимальное из приращений.
 
bool SetSize (size_t newSize)
 Функции, выделяющие потенциально большие участки памяти, возвращают результат операции (успех/ошибка). Подробнее...
 
bool Reserve (size_t n, bool addAdditionalSpace=true)
 Зарезервировать место под столько элементов.
 
bool Add (Type *)
 Добавить элемент в конец массива.
 
bool AddAt (Type *e, size_t index)
 Вставить элемент в указанную позицию.
 
bool AddAfter (Type *e, size_t index)
 Добавить элемент после указанного.
 
bool Insert (size_t index, Type *)
 Вставить элемент перед указанным.
 
bool AddArray (const RPArray< Type > &)
 Добавить массив.
 
bool AddCArray (const Type **, size_t count)
 Добавить C-массив.
 
bool InsertArray (const RPArray< Type > &, size_t index)
 Добавить массив в позицию.
 
void DetachAll ()
 Удалить все элементы обнулить количество элементов.
 
void Adjust ()
 Удалить лишнюю память.
 
Type * DetachInd (size_t delIndex)
 Отсоединить элемент от массива.
 
bool DetachObj (const Type *delObject)
 Отсоединить элемент от массива.
 
virtual Type * RemoveInd (size_t delIndex, DelType=defDelete)
 Удалить элемент из массива по индексу.
 
void Swap (RPArray &arr)
 Обменять местами данные массивов.
 
size_t FindIt (const Type *) const
 Найти элемент по указателю.
 
bool IsExist (const Type *) const
 Есть ли элемент в массиве.
 
size_t Count () const
 Получить количество элементов массива.
 
ptrdiff_t MaxIndex () const
 Получить индекс последнего объект в массиве.
 
void Sort (CompFunc comp)
 Сортировать массив.
 
Type *& operator[] (size_t loc) const
 Оператор доступа по индексу.
 
Type * GetLast () const
 Получить адрес последнего элемента в массиве.
 
size_t size () const
 Дать количество элементов массива.
 
bool reserve (size_t n)
 Зарезервировать место под столько элементов.
 
size_t capacity () const
 Под какое количество элементов выделена память?
 
void push_back (const Type *e)
 Добавить элемент в конец массива.
 
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 включительно.
 
virtual void clear ()
 Обнулить количество элементов.
 
void shrink_to_fit ()
 Удалить лишнюю память.
 
const TPtrbegin () const
 Получить указатель на первый элемент массива.
 
TPtrbegin ()
 Получить указатель на первый элемент массива.
 
const TPtrend () const
 Получить указатель на участок памяти после массива.
 
TPtrend ()
 Получить указатель на участок памяти после массива.
 
const TPtrcbegin () const
 Получить указатель на первый элемент массива.
 
const TPtrcend () const
 Получить указатель на участок памяти после массива.
 

Защищенные члены

const Type ** GetAddr () const
 Получить указатель на первый элемент массива.
 
const TPtr_Begin () const
 Получить указатель на первый элемент массива.
 
TPtr_Begin ()
 Получить указатель на первый элемент массива.
 
const TPtr_End () const
 Получить указатель на участок памяти после массива.
 
bool CatchMemory ()
 Захватить память.
 
bool AddMemory (size_t n)
 Обеспечить место в памяти под n элементов, независимо от AutoDelta.
 
size_t AutoDelta () const
 Вычислить автоприращение.
 

Защищенные данные

size_t count
 Количество элементов в массиве.
 
size_t upper
 Под какое количество элементов выделена память.
 
uint16 delta
 Приращение по количеству элементов при выделении дополнительной памяти.
 

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

template<class Type>
class RPArray< Type >

Одномерный массив указателей на объекты.

Шаблонный массив, работающий с указателями на объекты.

Методы

◆ SetSize()

template<class Type >
bool RPArray< Type >::SetSize ( size_t  newSize)
inline

Функции, выделяющие потенциально большие участки памяти, возвращают результат операции (успех/ошибка).

Установить новый размер массива.


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