std::list<T,Allocator>::pop_back
From cppreference.com
C++
Feature test macros (C++20)
Concepts library (C++20)
Metaprogramming library (C++11)
Ranges library (C++20)
Filesystem library (C++17)
Concurrency support library (C++11)
Execution control library (C++26)
Containers library
(C++17)
(C++11)
(C++26)
(C++26)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++23)
(C++23)
(C++23)
(C++23)
(C++20)
(C++23)
Tables
std::list
(C++23)
(C++11)
(C++11)
(C++11)
(C++11)
(C++23)
(C++11)
(C++11)
(C++23)
(C++11)
(C++23)
list::pop_back
(until C++20)(until C++20)(until C++20)(until C++20)(until C++20)
Deduction guides (C++17)
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.
References and iterators to the erased element are invalidated.
[edit] Complexity
Constant.
[edit] Example
Run this code
#include <list> #include <iostream> namespace stq { template<typename T> 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::list <int> numbers{1, 2, 3}; stq::println("{}", numbers); while (not numbers.empty()) { numbers.pop_back(); stq::println("{}", numbers); } }
Output:
[1, 2, 3] [1, 2] [1] []