![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
Class template stackBoost , The Boost C++ Libraries BoostBook Documentation Subset , Reference
|
![]() | Примечание |
---|---|
не является безопасным для ниток |
stack
public member functionsБроски:
boolunsynchronized_push(Tconst&v);
толкает объект t в стек.
![]() | Примечание |
---|---|
Не безопасны для потока. Если внутренний пул памяти исчерпан и пул памяти не фиксированного размера, из ОС будет выделен новый узел. Это может быть несвободно. |
Постусловия: | объект будет толкаться в стек, если можно выделить внутренний узел |
Возврат: | верно, если операция толчка успешна. |
Бросает: | , если распределитель памяти бросает |
template<typenameConstIterator> ConstIteratorunsynchronized_push(ConstIteratorbegin,ConstIteratorend);
Выталкивает столько объектов из диапазона [начало, конец], сколько может быть выделен узел свободного списка.
![]() | Примечание |
---|---|
Не безвредно. Если внутренний пул памяти исчерпан и пул памяти не фиксированного размера, из ОС будет выделен новый узел. Это может быть несвободно. |
Возвращает: | итератор к первому элементу, который не был подвинут | Бросает: | , если распределитель памяти бросает |
![]() | Примечание |
---|
[форматно-операционные связи] [закрыто], [прикрыто] | ||
[внутреннее положение]: | [ | [ ] [ ] [] [] |
boolpop(T&ret);
[] [
] Поп-объект из стека.
![]() | Примечание |
---|
Пост-условия:
в случае успешной работы с поп-ап, объект будет скопирован в ret.
Возврат:
верно, если операция поп-музыки успешна, ложно, если стек был пуст.
![]() | Примечание |
---|---|
Преимущество: | Т'' [T'] [ ] |
[] | [форматно-операционные связи] [открыто], [прикрыто] [открыто] |
Постановка, [установка], [установка], [установка] [ |
![]() | Примечание |
---|---|
[] [] [] [] [] []] [] [] [] [] []] [] [] []] [] [] []] [] []] [] []] [] []] [] []] [] []] [] []] [] []] [] []] [] []] [] [] []] [] []] [] [] []] [] |
boolunsynchronized_pop(T&ret);
Поп-объект из стека.
![]() | Примечание |
---|---|
Не безвредный, но неблокирующий |
Пост-условия: | в случае успешной операции с поп-образованием объект будет скопирован в ret. |
Возвращает: | верно, если операция поп-музыки успешна, ложно, если стек пуст. |
template<typenameU>boolunsynchronized_pop(U&ret);
Поп-объект из стека.
![]() | Примечание |
---|---|
Не безвредный, но неблокирующий |
Требования: | Тип Т должен быть конвертируемым в 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_atomic(Functor&f);
атомарно высасывает все элементы из стека и применяет функтор на каждом объекте
Безопасный и неблокирующий нить, если функтор безвредный и неблокирующий
Возврат: | количество элементов, которые потребляются |
Толчок-безопасность и блок-установка, эстакада |
атомарно всплывает все элементы из стека и
атомарно всплывает все элементы
[ORIG_END] --> |
![]() | Примечание |
---|---|
Нить-безопасность и блокоустойчивость, педантизм |
template<typenameFunctor> size_tconsume_all_atomic_reversed(Functorconst&f);
потребляет все элементы через функтор
атомарно выталкивает все элементы из стека и применяет функтор на каждом объекте в обратном порядке
![]() | Примечание |
---|---|
Безопасный и неблокирующий поток, если функтор безвредный и неблокирующий |
Возврат: | количество потребляемых элементов |
boolempty(void)const;
![]() | Примечание |
---|---|
Это только гарантирует, что в какой-то момент во время выполнения функции стек был пуст. Редко практично использовать это значение в программной логике, потому что стек может быть изменен другими потоками. |
Возвращается: | правда, если стопка пуста. |
Статья Class template stack раздела The Boost C++ Libraries BoostBook Documentation Subset Reference может быть полезна для разработчиков на c++ и boost.
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
реклама |