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 의 복사본을 추가합니다.
만약 연산 후 새로운
size()
가 기존
capacity()
보다 크면 재할당이 발생하며, 이 경우 모든 반복자(including the
end()
iterator)와 모든 요소에 대한 참조가 무효화됩니다. 그렇지 않으면
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) |