std::deque<T,Allocator>::pop_back - cppreference.com (original) (raw)
| void pop_back(); | | (constexpr since C++26) | | ----------------- | | ----------------------- |
Removes the last element of the container.
| If empty() is true, the behavior is undefined. | (until C++26) |
|---|---|
| If empty() is true: If the implementation is hardened, a contract violation occurs. Moreover, if the contract-violation handler returns under “observe” evaluation semantic, the behavior is undefined. If the implementation is not hardened, the behavior is undefined. | (since C++26) |
Iterators and references to the last element are invalidated. The end() iterator is also invalidated.
[edit] Complexity
Constant.
[edit] Example
#include #include namespace stq { template void println(auto, const T& xz) { std::cout << '['; bool first{true}; for (const auto& x : xz) std::cout << (first ? first = false, "" : ", ") << x; std::cout << "]\n"; } } int main() { std::deque numbers{1, 2, 3}; stq::println("{}", numbers); while (not numbers.empty()) { numbers.pop_back(); stq::println("{}", numbers); } }
Output: