std::vector<T,Allocator>::push_back
void push_back( const T& value );
|
(1) | (C++20부터 constexpr) |
void push_back( T&& value );
|
(2) | (C++11부터) (C++20부터 constexpr) |
주어진 요소를 value 컨테이너의 끝에 추가합니다.
value의 복사본으로 초기화됩니다.value가 새 요소로 이동됩니다.연산 후 새 size()이(가) 이전 capacity()보다 크면 재할당이 발생하며, 이 경우 모든 반복자(end() 반복자 포함)와 요소에 대한 모든 참조가 무효화됩니다. 그렇지 않으면 end() 반복자만 무효화됩니다.
매개변수
| value | - | 추가할 요소의 값 |
|
(C++11부터) | ||||||
반환값
(없음)
복잡도
분할 상환 상수 시간.
예외
예외가 발생하면(이는
Allocator::allocate()
또는 요소 복사/이동 생성자/대입 연산자로 인해 발생할 수 있음), 이 함수는 아무런 효과를 가지지 않습니다(
strong exception guarantee
).
|
만약
|
(C++11부터) |
참고 사항
일부 구현에서는
std::length_error
를 던집니다. 이는
push_back
이 재할당을 유발하여
max_size
를 초과하는 경우입니다 (이는
reserve
(
size
() + 1))
에 해당하는 암시적 호출로 인해 발생합니다.
예제
#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'; }
가능한 출력:
std::vector letters holds: "abc" "def" Moved-from string s holds: ""
참고 항목
|
(C++11)
|
끝에서 제자리에 요소를 생성합니다
(public member function) |
|
마지막 요소를 제거합니다
(public member function) |
|
|
인수에서 추론된 타입의
std::back_insert_iterator
를 생성합니다
(function template) |