Namensräume
Varianten
Aktionen

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

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

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

Wenn size() == capacity() true ist, hat dies keine Auswirkungen. Andernfalls wird ein Objekt vom Typ T angehängt.

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

[edit] Parameter

value - Der Wert des anzuhängenden Elements
Typanforderungen
-
T muss die Anforderungen von EmplaceConstructible erfüllen.

[edit] Rückgabewert

std::addressof(back()), wenn size() < capacity(), nullptr andernfalls.

[edit] Komplexität

Konstant.

[edit] Ausnahmen

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).

[edit] Hinweise

[edit] Beispiel

#include <cassert>
#include <inplace_vector>
#include <string>
 
int main()
{
    std::inplace_vector<std::string, 2> pets;
    std::string dog{"dog"};
 
    std::string* p1 = pets.try_push_back("cat"); // overload (1)
    assert(*p1 == "cat" and pets.size() == 1);
 
    std::string* p2 = pets.try_push_back(std::move(dog)); // overload (2)
    assert(*p2 == "dog" and pets.size() == 2);
 
    assert(pets[0] == "cat" and pets[1] == "dog");
    assert(pets.size() == pets.capacity());
 
    std::string* p3 = pets.try_push_back("bug");
    assert(p3 == nullptr and pets.size() == 2);
}

[edit] Siehe auch

fügt ein Element am Ende hinzu
(public member function) [edit]
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 inplace am Ende zu konstruieren
(public member function) [edit]
versucht, einen Bereich von Elementen am Ende hinzuzufügen
(public member function) [edit]
konstruiert bedingungslos ein Element inplace am Ende
(public member function) [edit]
fügt bedingungslos ein Element am Ende hinzu
(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]