std::stack<T,Container>::push_range
Von cppreference.com
| template< container-compatible-range<value_type> R > void push_range( R&& rg ); |
(seit C++23) | |
Fügt eine Kopie jedes Elements von rg in den stack ein, als ob durch
- c.append_range(std::forward<R>(rg)) wenn dies ein gültiger Ausdruck ist (d. h. der zugrunde liegende Container c hat eine geeignete
append_range-Memberfunktion), oder - ranges::copy(rg, std::back_inserter(c)) andernfalls.
Jeder Iterator im Bereich rg wird genau einmal dereferenziert.
Inhalt |
[bearbeiten] Parameter
| rg | - | Ein Container-kompatibler Bereich, d. h. ein input_range, dessen Elemente in T konvertierbar sind |
[bearbeiten] Komplexität
Identisch zur Komplexität von c.append_range oder ranges::copy(rg, std::back_inserter(c)) (abhängig davon, welche Funktion intern verwendet wird).
[bearbeiten] Anmerkungen
| Feature-Test-Makro | Wert | Std | Feature |
|---|---|---|---|
__cpp_lib_containers_ranges |
202202L |
(C++23) | Ranges-kompatible Konstruktion und Einfügung |
[bearbeiten] Beispiel
Führen Sie diesen Code aus
#include <initializer_list> #include <stack> #include <version> #ifdef __cpp_lib_format_ranges #include <print> using std::println; #else #define FMT_HEADER_ONLY #include <fmt/ranges.h> using fmt::println; #endif int main() { std::stack<int> 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); }
Ausgabe
[1, 3, 2, 4]
[bearbeiten] Siehe auch
| fügt ein Element oben ein (public member function) |