std::vector push_back
멤버 함수 push_back은 vector의 끝에 요소를 추가할때 사용하는 함수
참조링크 : https://shaeod.tistory.com/574?category=534073
std::vector emplace_back
push_back과 같이 vector의 요소 끝에 원소를 추가하는 함수
std::vector의 멤버 함수인 emplace_back은 C++11부터 추가된 멤버 함수로써 push_back과 같이 vector의 요소 끝에
원소를 추가하는 함수이다. 두 함수의 가장 큰 차이점은, push_back과 같은 삽입 함수들은 삽입할 객체를 받지만
emplace_back과 같은 생성 삽입 함수는 삽입할 객체의 생성자를 위한 인자들을 받아 std::vector 내에서 직접 객체를
생성하여 삽입하므로 임시 객체의 생성과 파괴, 복사를 하지 않아도 되서 성능상 더 유리하다는 것이다.
push_back으로 하여도 컴파일러 내부적으로 최적화 하기 때문에 emplace_back으로 하는 것과 별 차이가 없을 수 있다.
고로 특별한 경우가 아니라면 호환성이 더 좋은 push_back 사용이 더 나을 수도 있다.
push_bakc함수보다 emplace_back 함수가 대체로 효율적이다. 하지만 반대로 push_back이 더 효율적일 때도 있다.
참조링크 : https://shaeod.tistory.com/630?category=534073
std::vector 주요 멤버 함수 목록
'Programming > STL' 카테고리의 다른 글
C++(STL Container) vector (0) | 2020.09.27 |
---|---|
C++(STL Container) map (0) | 2020.09.27 |
C++(STL Container) list (0) | 2020.09.27 |
C++ STL이란? (0) | 2020.09.27 |
STL map / unordered_map 과 map이 사용하는 자료구조 (0) | 2020.05.07 |