On this page
std::vector<T,Allocator>::push_back
| (1) | ||
|
(until C++20) | |
|
(since C++20) | |
| (2) | ||
|
(since C++11) (until C++20) |
|
|
(since C++20) |
Appends the given element value to the end of the container.
value.
value is moved into the new element.
If after the operation the new size() is greater than old capacity() a reallocation takes place, in which case all iterators (including the end() iterator) and all references to the elements are invalidated. Otherwise only the end() iterator is invalidated.
Parameters
| value | - | the value of the element to append |
| Type requirements | ||
-T must meet the requirements of CopyInsertable in order to use overload (1). |
||
-T must meet the requirements of MoveInsertable in order to use overload (2). |
||
Return value
(none)
Complexity
Amortized constant.
Exceptions
If an exception is thrown (which can be due to Allocator::allocate() or element copy/move constructor/assignment), this function has no effect (strong exception guarantee).
If |
(since C++11) |
Notes
Some implementations throw std::length_error when push_back causes a reallocation that exceeds max_size (due to an implicit call to an equivalent of reserve(size() + 1)).
Example
#include <iomanip>
#include <iostream>
#include <string>
#include <vector>
int main()
{
std::vector<std::string> letters;
letters.push_back("abc");
std::string s{"def"};
letters.push_back(std::move(s));
std::cout << "std::vector letters holds: ";
for (auto&& e : letters)
std::cout << std::quoted(e) << ' ';
std::cout << "\nMoved-from string s holds: " << std::quoted(s) << '\n';
}
Possible output:
std::vector letters holds: "abc" "def"
Moved-from string s holds: ""
See also
|
(C++11)
|
constructs an element in-place at the end (public member function) |
| removes the last element (public member function) |
|
creates a std::back_insert_iterator of type inferred from the argument (function template) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/container/vector/push_back