Przestrzenie nazw
Warianty
Działania

std::vector::push_back

Z cppreference.com
< cpp‎ | container‎ | vector
void push_back( const T& value );
(1)
void push_back( T&& value );
(2) (od C++11)

Dodaje nowy element value na koniec kontenera.

1) Nowy element jest inicjalizowany jako kopia value.
2) value jest przenoszone do nowego elementu.

Jeśli nowy rozmiar size() jest większy niż capacity(), wszystkie iteratory i referencje zostają unieważnione (wliczając iterator zakońcowy). W przeciwnym wypadku tylko iterator zakońcowy zostaje unieważniony.

Spis treści

[edytuj] Parametry

value - wartość dodawanego elementu
Wymagania względem typów
-
T musi spełniać wymagania CopyInsertable aby użyć przeciążenia (1).
-
T musi spełniać wymagania MoveInsertable aby użyć przeciążenia (2).

[edytuj] Zwracana wartość

(none)

[edytuj] Złożoność

Zamortyzowana stała.

[edytuj] Wyjątki

Jeśli zostanie wyrzucony wyjątek (co może nastąpić w związku z alokacją pamięci Allocator::allocate() lub konstrukcją/przypisaniem elementu za pomocą kopiowania lub przeniesienia), funkcja nie zmieni wartości kontenera (strong exception guarantee).

Jeśli konstruktor przenoszący T nie jest noexcept oraz T nie jest CopyInsertable do *this, wektor użyje konstruktora przenoszącego. Jeśli ten konstruktor wyrzuci wyjątek, gwarancja niezmienności stanu kontenera jest zniesiona, a efekty niesprecyzowane. (od C++11)

Notka

Niektóre implementacje wyrzucają również std::length_error, kiedy push_back spowoduje realokację, która przekroczyłaby max_size, w związku z niejawnym wywołaniem odpowiednika reserve(size()+1).

[edytuj] Przykład

#include <vector>
#include <iostream>
#include <iomanip>
 
int main()
{
    std::vector<std::string> numbers;
 
    numbers.push_back("abc");
    std::string s = "def";
    numbers.push_back(std::move(s));
 
    std::cout << "vector holds: ";
    for (auto&& i : numbers) std::cout << std::quoted(i) << ' ';
    std::cout << "\nMoved-from string holds " << std::quoted(s) << '\n';
}

Wynik:

vector holds: "abc" "def" 
Moved-from string holds ""

[edytuj] Zobacz także

konstruuje element "w miejscu" na końcu
(publiczna metoda) [edit]
usuwa ostatni element
(publiczna metoda) [edit]