std::stack<T,Container>::push_range - cppreference.com (original) (raw)
Inserts a copy of each element of rg in stack, as if by:
- c.append_range(std::forward<R>(rg)) if that is a valid expression (i.e. the underlying container c has an appropriate
append_rangemember function), or - ranges::copy(rg, std::back_inserter(c)) otherwise.
Each iterator in the range rg is dereferenced exactly once.
[edit] Parameters
[edit] Complexity
Identical to the complexity of c.append_range or ranges::copy(rg, std::back_inserter(c)) (depending on what function is used internally).
[edit] Notes
| Feature-test macro | Value | Std | Feature |
|---|---|---|---|
| __cpp_lib_containers_ranges | 202202L | (C++23) | Ranges-aware construction and insertion |
[edit] Example
#include #include #include #ifdef __cpp_lib_format_ranges #include using std::println; #else #define FMT_HEADER_ONLY #include <fmt/ranges.h> using fmt::println; #endif int main() { std::stack adaptor; const auto rg = {1, 3, 2, 4}; #ifdef __cpp_lib_containers_ranges adaptor.push_range(rg); #else for (int e : rg) adaptor.push(e); #endif println("{}", adaptor); }
Output:
[edit] See also
| | inserts element at the top (public member function) [edit] | | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |