Namensräume
Varianten
Aktionen

std::inplace_vector<T,N>::push_back

Von cppreference.com
 
 
 
 
constexpr reference push_back( const T& value );
(1) (seit C++26)
constexpr reference push_back( T&& value );
(2) (seit C++26)

Hängt das gegebene Element value an das Ende des Containers an.

1) Das neue Element wird als Kopie von value initialisiert.
2) value wird in das neue Element verschoben.

Keine Iteratoren oder Referenzen werden ungültig, außer end(), welche ungültig wird, wenn die Einfügung stattfindet.

Inhalt

[bearbeiten] Parameter

value - Der Wert des anzuhängenden Elements
Typanforderungen
-
T muss die Anforderungen von CopyInsertable erfüllen, um Überladung (1) zu verwenden.
-
T muss die Anforderungen von MoveInsertable erfüllen, um Überladung (2) zu verwenden.

[bearbeiten] Rückgabewert

back(), d.h. eine Referenz auf das eingefügte Element.

[bearbeiten] Komplexität

Konstant.

[bearbeiten] Ausnahmen

  • std::bad_alloc, falls size() == capacity() vor dem Aufruf.
  • Jede Ausnahme, die bei der Initialisierung eines eingefügten Elements ausgelöst wird.

Wenn aus irgendeinem Grund eine Ausnahme ausgelöst wird, haben diese Funktionen keine Auswirkungen (starke Ausnahme-Sicherheitsgarantie).

[bearbeiten] Beispiel

#include <inplace_vector>
#include <new>
#include <print>
#include <string>
 
int main()
{
    std::inplace_vector<std::string, 2> fauna;
    std::string dog{"\N{DOG}"};
 
    fauna.push_back("\N{CAT}"); // overload (1)
    fauna.push_back(std::move(dog)); // overload (2)
    std::println("fauna = {}", fauna);
 
    try
    {
        fauna.push_back("\N{BUG}"); // throws: there is no space
    }
    catch(const std::bad_alloc& ex)
    {
        std::println("{}", ex.what());
    }
    std::println("fauna = {}", fauna);
}

Mögliche Ausgabe

fauna = ["🐈", "🐕"]
std::bad_alloc
fauna = ["🐈", "🐕"]

[bearbeiten] Siehe auch

konstruiert ein Element direkt (in-place) am Ende
(public member function) [edit]
fügt einen Bereich von Elementen am Ende hinzu
(public member function) [edit]
versucht, ein Element am Ende hinzuzufügen
(public member function) [edit]
versucht, ein Element inplace am Ende zu konstruieren
(public member function) [edit]
versucht, einen Bereich von Elementen am Ende hinzuzufügen
(public member function) [edit]
fügt bedingungslos ein Element am Ende hinzu
(public member function) [edit]
konstruiert bedingungslos ein Element inplace am Ende
(public member function) [edit]
entfernt das letzte Element
(public member function) [edit]
erstellt einen std::back_insert_iterator vom Typ, der aus dem Argument abgeleitet wird
(Funktionsvorlage) [bearbeiten]