std::inplace_vector<T,N>::unchecked_push_back
Von cppreference.com
< cpp | container | inplace vector
| constexpr reference unchecked_push_back( const T& value ); |
(1) | (seit C++26) |
| constexpr reference unchecked_push_back( T&& value ); |
(2) | (seit C++26) |
Hängt das gegebene Element value an das Ende des Containers an.
Äquivalent zu: return *try_push_back(std::forward<decltype(value)>(value));
1) Das neue Element wird als Kopie von value initialisiert.
2) value wird in das neue Element verschoben.
Vor dem Aufruf dieser Funktionen muss size() < capacity() true sein. Andernfalls ist das Verhalten undefiniert.
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 CopyInsertable erfüllen, um Überladung (1) zu verwenden. | ||
-T muss die Anforderungen von MoveInsertable erfüllen, um Überladung (2) zu verwenden. | ||
[edit] Rückgabewert
back(), d.h. eine Referenz auf das eingefügte Element.
[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
| Dieser Abschnitt ist unvollständig Grund: Erklären Sie den Zweck dieser API. |
[edit] Beispiel
Führen Sie diesen Code aus
#include <cassert> #include <inplace_vector> #include <string> int main() { std::inplace_vector<std::string, 2> fauna; std::string dog{"dog"}; auto& r1 = fauna.unchecked_push_back("cat"); // overload (1) assert(r1 == "cat" and fauna.size() == 1); auto& r2 = fauna.unchecked_push_back(std::move(dog)); // overload (2) assert(r2 == "dog" and fauna.size() == 2); assert(fauna[0] == "cat" and fauna[1] == "dog"); // fauna.unchecked_push_back("bug"); // undefined behavior: there is no space }
[edit] Siehe auch
| fügt ein Element am Ende hinzu (public member function) | |
| konstruiert ein Element direkt (in-place) am Ende (public member function) | |
| fügt einen Bereich von Elementen am Ende hinzu (public member function) | |
| versucht, ein Element am Ende hinzuzufügen (public member function) | |
| versucht, ein Element inplace am Ende zu konstruieren (public member function) | |
| versucht, einen Bereich von Elementen am Ende hinzuzufügen (public member function) | |
| konstruiert bedingungslos ein Element inplace am Ende (public member function) | |
| entfernt das letzte Element (public member function) | |
| erstellt einen std::back_insert_iterator vom Typ, der aus dem Argument abgeleitet wird (Funktionsvorlage) |