• Уважаемые гости и новички, приветствуем Вас на нашем форуме
    Здесь вы можете найти ответы практически на все свои вопросы о серии игр «Готика» (в том числе различных модах на нее), «Ведьмак», «Ризен», «Древние свитки», «Эра дракона» и о многих других играх. Можете также узнать свежие новости о разработке новых проектов, восхититься творчеством наших форумчан, либо самим показать, что вы умеете. Ну и наконец, можете обсудить общие увлечения или просто весело пообщаться с посетителями «Таверны».

    Чтобы получить возможность писать на форуме, оставьте сообщение в этой теме.
    Удачи!
  • Друзья, доброго времени суток!
    Стартовал новый литературный конкурс от "Ордена Хранителей" - "Пираты Миртанского моря".
    Каждый может принять в нём участие и снискать славу и уважение, а в случае занятия призового места ещё и получить награду. Дерзайте
  • Дорогие друзья, год подходит к концу, и пришло время подвести его итоги и наградить достойных

    Не ленитесь, голосуйте в этой теме за тех форумчан, которые по вашему мнению больше всех проявили себя в этом году
    По желанию, аргументировать свой выбор можете в теме обсуждения голосования.

Union.Array - краткое описание класса

Gratt


Модостроитель
Регистрация
14 Ноя 2014
Сообщения
3.301
Благодарности
4.638
Баллы
625
Назначение: динамические массивы
Определение: Array<T>

- Конструкторы
Код:
Array()
    Создет пустой массив.



Array( T* copy, const uint& count = Invalid )
    Создает массив на основе векатора copy длиною count.
    Если count равен Invalid, то размер будет определен через функцию _msize.



Array( Array& other )
    Создает массив, имеющий общую область памяти с массивом other.



Array( const Array& other )
    Создает копию массива other.

- Операторы
Код:
Array& operator += ( const T& obj )
    Вставляет элемент obj в конец массива.



Array& operator += ( const Array& other )
    Добавляет к текущему массиву данные массива other.


Array& operator |= ( const T& obj )
    Вставляет элемент obj в конец массива, если похожих элементов больше нет.



Array& operator |= ( const Array& other )
    Вставляет в текущий массив только уникальные элементы из массива other.



Array& operator -= ( const T& obj )
    Исключает элемент obj из текущего массива.



Array& operator -= ( const Array& other )
    Исключает элементы из текущего массива, соответствующие элементам массива other.



Array& operator ^= ( const T& obj )
    Исключает все элементы, похожие на obj.



Array& operator ^= ( const Array& other )
    Исключает все элементы, похожие на элементы массива other.



Array& operator = ( const Array& other )
    Приравнивает значения текущего массива к значениям other.


bool operator == ( const Array& other ) const
    Определяет равны ли массивы.


bool operator & ( const T& obj ) const
    Определяет есть ли в массиве элемент obj.



const T& operator[]( const uint& index ) const
    Возвращает ссылку на элемент под индексом index.



T& operator[]( const uint& index )
    Возвращает ссылку на элемент под индексом index.

- Методы
Код:
T& Create()
    Создает внутри массива элемент T и возвращает на него ссылку.



T& InsertEnd( const T& obj )
    Вставляет элемент obj в конец массива.



T& Insert( const T& obj )
    Вставляет элемент obj в конец массива.



T& InsertAt( const T& obj, const uint& index )
    Вставляет элемент obj в index позицию массива массива.



T& InsertFront( const T& obj )
    Вставляет элемент obj в начало массива.



void Remove( const T& obj )
    Исключает элемент obj из массива.



void RemoveAt( const uint& index )
    Исключает элемент с индексом index из массива.



void FastRemove( const T& obj )
    Исключает элемент obj из массива без соблюдения порядка элементов.




void FastRemoveAt( const uint& index )
    Исключает элемент с индексом index из массива без соблюдения порядка элементов.



void RemoveAtBounds( const uint& index, const uint& count )
    Исключает из массива все элементы начиная с индекса index длиною count.



void Clear()
    Очищает весь массив.



void Delete( const T& obj )
    Удаляет элемент obj из массива.



void DeleteAt( const uint& index )
    Удаляет элемент с индексом index из массива.



void FastDelete( const T& obj )
    Удаляет элемент obj из массива без соблюдения порядка элементов.



void FastDeleteAt( const uint& index )
    Удаляет элемент с индексом index из массива без соблюдения порядка элементов.



void DeleteAtBounds( const uint& index, const uint& count )
    Удаляет из массива все элементы начиная с индекса index длиною count.



void DeleteData()
    Удаляет все данные массива и очищает его.



void MergeArray( const Array& other )
    Добавляет к текущему массиву данные массива other.



void MergeArrayAt( const Array& other, const uint& index )
    Добавляет к текущему массиву данные массива other в указанное место index.




bool CompareLinear( const Array& other ) const
    Линейно сравнивает текущий массив с массивом other.



bool CompareInsorted( const Array& other ) const
    Нелинейно сравнивает текущий массив с массивом other.



Array& Normalize()
    Исключает все повторения внутри массива.



const T* GetSafe( const uint& index ) const
    Возвращает указатель на элемент по индексу index.
    Если элемент по такому индексу не может существовать, то функция вернет Null.



T* GetSafe( const uint& index )
    Возвращает указатель на элемент по индексу index.
    Если элемент по такому индексу не может существовать, то функция вернет Null.



const T& GetFirst() const
    Возвращает ссылку на первый элемент массива.


T& GetFirst()
    Возвращает ссылку на первый элемент массива.



const T& GetLast() const
    Возвращает ссылку на последний элемент массива.



T& GetLast()
    Возвращает ссылку на последний элемент массива.



template<class O>
bool HasEqual( const O& obj ) const
    Определяет имеет ли массив элемент, похожий на obj.



template<class O>
uint SearchEqual( const O& obj, const uint& begin = 0 ) const
    Находит индекс элемента в массиве, похожего на obj начиная с элемента begin.
    Если элемент не найден, то функция вернет Invalid.



template<class O>
uint CountOfEqual( const O& obj ) const
    Считает количество элементов массива, похожих на obj.



void ReleaseData()
    Вызывает функцию Release() для всех элементов массива.



T& InsertSorted( const T& obj )
    Вставляет элемент в массив с учетом сортировки.



void MergeArraySorted( const Array& other )
    Вставляет в массив элементы массива other с учетом сортировки.



template<class O>
T& CreateSorted( const O& byObj )
    Создает внутри массива новый объект с учетом сортировки по шаблону byObj и возвращает ссылку на объект.



template<class O>
bool HasEqualSorted( const O& obj ) const
    Определяет имеет ли массив элемент, похожий на obj производя сортированный поиск по массиву.



template<class O>
uint SearchEqualSorted( const O& obj ) const
    Находит индекс элемента в массиве, похожего на obj производя сортированный поиск по массиву.
    Если элемент не найден, то функция вернет Invalid.



template<class O>
void RemoveSorted( const O& obj )
    Исключает элемент obj из массива производя сортированный поиск по массиву.



template<class O>
void DeleteSorted( const O& obj )
    Удаляет элемент obj из массива производя сортированный поиск по массиву.



template<class O>
uint FindIndexForObject( const O& obj ) const
    Находит наилучшую позицию в массиве для объекта obj и возвращает ее индекс.
    Функция используется в алгоритмах соритровки.



Array& QuickSort()
    Быстро сортирует массив.



void Copy( T** ppmem, const uint& index, const uint& count )
    Создает новую область памяти в ppmem и копирует в нее данные массива начиная с index длиною count.



uint GetNum() const
    Возвращает длину массива.



bool IsEmpty() const
    Определяет пуст ли массив.



uint GetTypeSize() const
    Возвращает размер типа T.


void SetLocatorMultiplier( const uint& rate )
    Возвращает множитель аллокатора, на который будет увеличиваться размер памяти массива, когда она начнет заканчиваться.



void ShrinkToFit()
    Уменьшает объем используемой памяти массива до границ его элементов.
 
Последнее редактирование:

Gratt


Модостроитель
Регистрация
14 Ноя 2014
Сообщения
3.301
Благодарности
4.638
Баллы
625
Назначение: отсортированные динамические массивы
Определение: ArraySorted<T, SORTFUNC>

// TO DO
 
Сверху Снизу