std::stack<T,Container>:: push_range
|
template
<
container-compatible-range
<
value_type
>
R
>
void push_range ( R && rg ) ; |
(seit C++23) | |
Fügt eine Kopie jedes Elements von
rg
in
stack
ein, wie durch:
-
c.
append_range
(
std::
forward
<
R
>
(
rg
)
)
falls dies ein gültiger Ausdruck ist (d.h. der zugrundeliegende Container
c
über eine entsprechende
append_rangeMember-Funktion verfügt), oder - ranges:: copy ( rg, std:: back_inserter ( c ) ) andernfalls.
Jeder Iterator im Bereich
rg
wird genau einmal dereferenziert.
Inhaltsverzeichnis |
Parameter
| rg | - |
ein
container compatible range
, also ein
input_range
, dessen Elemente konvertierbar zu
T
sind
|
Komplexität
Identisch mit der Komplexität von c. append_range oder ranges:: copy ( rg, std:: back_inserter ( c ) ) (abhängig davon, welche Funktion intern verwendet wird).
Hinweise
| Feature-Test Makro | Wert | Std | Feature |
|---|---|---|---|
__cpp_lib_containers_ranges
|
202202L
|
(C++23) | Ranges-basierte Konstruktion und Einfügung |
Beispiel
#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]
Siehe auch
|
fügt Element oben ein
(öffentliche Elementfunktion) |