![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
Class template queueBoost , The Boost C++ Libraries BoostBook Documentation Subset , Reference
|
![]() | Предупреждение |
---|---|
Проверяется только в том случае, если головка и хвостовые узлы очереди и свободный список могут быть изменены без блокировки. На большинстве платформ вся реализация без блокировки, если это правда. Используя атомы в стиле c++0x, невозможно обеспечить полностью точную реализацию, потому что нужно будет протестировать каждый внутренний узел, что невозможно, если из операционной системы будут выделены дополнительные узлы. |
Возвращается: | верно, если реализация не заблокирована. |
voidreserve(size_typen);
Выделить n узлов для свободного списка
Примечание | |||
---|---|---|---|
безвредный поток, может блокировать, если блоки распределителя памяти |
только действительный, если нет емкости |
voidreserve_unsafe(size_typen);>
Выделить n узлов для свободного списка
![]() | Примечание | не является нить-безопасным, может блокировать, если блоки распределителя памяти |
---|
Требует: | действителен только в том случае, если нет емкости |
boolempty(void)const;
Проверьте, пуста ли очередь
![]() | Примечание |
---|---|
Результат является точным, только если ни одна другая нить не изменяет очередь. Поэтому редко целесообразно использовать это значение в программной логике. |
Возвращает: | истинно, если очередь пуста, ложно иначе |
boolpush(Tconst&t);
Притягивает объект t к очереди.
![]() | Примечание |
---|---|
Безопасный. Если внутренний пул памяти исчерпан и пул памяти не фиксированного размера, из ОС будет выделен новый узел. Это может быть несвободно. |
Постусловия: | объект будет отодвинут в очередь, если можно выделить внутренний узел |
Возврат: | верно, если операция толчка успешна. |
boolbounded_push(Tconst&t);
Притягивает объект t к очереди.
![]() | Примечание |
---|---|
Безопасная и неблокирующая нить. Если внутренний пул памяти исчерпан, операция выйдет из строя |
. Постусловия: | объект будет отодвинут в очередь, если можно выделить внутренний узел |
Возврат: | верно, если операция толчка будет успешной. |
Бросает: | , если распределитель памяти бросает |
template<boolBounded>booldo_push(Tconst&t);>
queue
public member functionsboolunsynchronized_push(Tconst&t);
Подталкивает объект t к очереди.
![]() | Примечание |
---|---|
Небезопасно. Если внутренний пул памяти исчерпан и пул памяти не фиксированного размера, из ОС будет выделен новый узел. Это может быть несвободно. |
Постусловия: | объект будет отодвинут в очередь, если можно выделить внутренний узел |
Возврат: | верно, если операция толчка успешна. |
Бросает: | , если распределитель памяти бросает |
boolpop(T&ret);
Поп-объект из очереди.
boolunsynchronized_pop(T&ret);>
Поп-объект из очереди.
![]() | Примечание |
---|---|
Не безвредный, но неблокирующий |
Постусловия: | в случае успешной работы с поп-ап, объект будет скопирован в ret. |
Возвращается: | верно, если операция поп-музыки успешна, ложно, если очередь пуста. |
template<typenameU>boolunsynchronized_pop(U&ret);
![]() | Примечание |
---|---|
Не безвредный, но неблокирующий |
Требуется: | Тип U должен быть конструируемым по T и копируемым, или T должен быть конвертируемым в U |
Пост-условия: | в случае успешной работы с поп-образованием объект будет скопирован в рет. |
Возвращается: | верно, если операция поп-музыки успешна, ложно, если очередь пуста. |
template<typenameFunctor>boolconsume_one(Functor&f);
потребляет один элемент через функтор
выскакивает один элемент из очереди и применяет функтор на этом объекте
![]() | Примечание |
---|---|
Безопасная и неблокирующая нить, если функтор безвредный и неблокирующий |
Возврат: | верно, если один элемент был потреблен |
template<typenameFunctor>boolconsume_one(Functorconst&f);
потребляет один элемент через функтор
выскакивает один элемент из очереди и применяет функтор на этом объекте
![]() | Примечание | ||
---|---|---|---|
Безопасный для ниток и неблокирующий, если функтор безвредный и неблокирующий |
template<typenameFunctor>size_tconsume_all(Functor&f);>
потребляет все элементы с помощью функтора
последовательно выводит все элементы из очереди и применяет функтор на каждом объекте
![]() | Примечание |
---|---|
Безопасный и неблокирующий нить, если функтор безвредный и неблокирующий |
количество потребляемых элементов |
template<typenameFunctor>size_tconsume_all(Functorconst&f);>
потребляет все элементы через функтор
последовательно выводит все элементы из очереди и применяет функтор на каждом объекте
![]() | Примечание |
---|---|
Безопасный и неблокирующий поток, если функтор безвредный и неблокирующий |
Возврат: | количество потребляемых элементов |
Статья Class template queue раздела The Boost C++ Libraries BoostBook Documentation Subset Reference может быть полезна для разработчиков на c++ и boost.
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
реклама |