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