template<class... Args>
void emplace_back(Args&&... args);
: vector의 끝에 새 요소를 args를 사용하여 생성합니다.
void push_back(const value_type& val);
void push_back(value_type&& val);
: vector의 끝에 새 요소 val를 복사하거나 이동시킵니다.
공통점 : 새 벡터의 크기가 현재 벡터의 용량을 초과하는 경우 저장 공간이 자동으로 재할당됩니다.
emplace_back
push_back
push_back을 사용하는 이유
1. 가독성 & 명시성
2. 디버깅이 상대적으로 쉬움
push_back을 사용하는 시기
: 이미 만들어진 객체를 넣을 때 사용합니다.
<example>
#include <iostream>
#include <vector>
using namespace std;
int main() {
vector<int> vec;
vec.emplace_back(1);
int a = 3; // 삽입할 객체를 생성
vec.push_back(a);
vec.emplace_back(a); // a를 전달받아 생성자를 호출
for (const int& i : vec) {
cout << i << ' ';
}
return 0;
}
결과값
