C3D Kernel  104598
Открытые члены
Шаблон класса SQueue< Type >

Очередь объектов, которые не имеют деструкторов. Подробнее...

Полный список членов класса

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

 SQueue (size_t capacity=0)
 Конструктор.
virtual ~SQueue ()
 Деструктор.
size_t Capacity () const
 Выдать размер выделенной памяти.
Type & Back ()
 Последний элемент очереди.
const Type & Back () const
 Последний элемент очереди.
Type & Front ()
 Первый элемент очереди.
const Type & Front () const
 Первый элемент очереди.
bool Empty () const
 Свойство пустого множества.
bool IsFull () const
 Свойство исчерпанной памяти.
Type & First () const
 Самый первый, выходящий из очереди (корректно работает только для непустой очереди).
void Push (const Type &obj)
 Добавить в очередь и нарастить буфер выделенной памяти при необходимости.
void Pop ()
 Вывести из очереди.
void Pop (Type &obj)
 Вывести из очереди.
void Reserve (size_t)
 Зарезервировать дополнительную память.
void SetEmpty ()
 Очистить очередь.
size_t Size () const
 Выдать размер очереди.

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

template<class Type>
class SQueue< Type >

Очередь объектов, которые не имеют деструкторов.

Требования к объектам очереди такие же, как в SArray<Type>.

Внимание:
В целях эффективности контейнера проверки обращения к запредельной памяти реализованы только под откладкой
Рекомендации по использованию
Если предполагается фиксированный (известный) наибольший размер очереди, то рекомендуется использовать функцию SQueue<class Type>::Push() для добавления объекта. Если предельный размер очереди не известен, то следует применять метод SQueue<class Type>::PushAlloc(), который при добавлении "наращивает" память по мере необходимости.
Правило выделения памяти
Если размера буфера для хранения объектов очереди не достаточно, то выделяется новый участок кучи с размеров на SQueue::delta больше. Если SQueue::delta = 1, то размер выделенной памяти уведичивается на 12,5% при каждом достижении предела.

Методы

template<class Type >
Type & SQueue< Type >::Back ( ) [inline]

Кто крайний? (корректно работает только для непустой очереди)

template<class Type >
const Type & SQueue< Type >::Back ( ) const [inline]

Кто крайний? (корректно работает только для непустой очереди);.

template<class Type >
bool SQueue< Type >::IsFull ( ) const [inline]

Свойство полностью исчерпанного буфера

Фактически свойство отвечает возможно ли добавить в очередь элемент без передислокации буфера.

template<class Type >
void SQueue< Type >::Push ( const Type &  obj)

Добавить в очередь и нарастить буфер выделенной памяти при необходимости

Тоже, что и SQueue<Type>::Push, но с перезахватом памяти при исчерпании буфера

template<class Type >
void SQueue< Type >::Reserve ( size_t  addCapacity)

Зарезервировать дополнительную память

template<class Type >
size_t SQueue< Type >::Size ( ) const [inline]

Выдать размер очереди


Объявления и описания членов класса находятся в файле:
 Указатель Классы Пространства имен Файлы Функции Переменные Определения типов Перечисления Элементы перечислений Друзья Макросы