C3D Toolkit  Kernel - 106477, Vision - 190409.106477

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

#include <templ_s_queue.h>

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

 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% при каждом достижении предела.

Методы

◆ Back() [1/2]

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

Последний элемент очереди.

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

◆ Back() [2/2]

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

Последний элемент очереди.

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

◆ IsFull()

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

Свойство исчерпанной памяти.

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

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

◆ Push()

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

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

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

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

◆ Reserve()

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

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

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

◆ Size()

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

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

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


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