프로그래밍 언어/C++ STL
STL의 vector, push_back()과 emplace_back()
뽀또치즈맛
2024. 11. 27. 00:03
push_back , emplace_back
둘의 공통점
push_back , emplace_back은
두 함수 모두 vector컨테이너가 주어졌을 때 한 칸을 늘리고 해당 값을 넣어주게 된다.
둘의 차이점
그러나 내부적으로 동작하는 것은 조금 다른데,
push_back의 경우
push_back의 경우 메모리를 이동하거나 임시 객체를 이용하여
임시객체가 생성되고 넣어준 뒤에 임시 객체가 삭제되는 호출이 있다.
-> 복사의 개념
emplace_back의 경우
대신 emplace_back은 받은 인수를 이용해 내부에서 생성자를 통한 객체 생성 후
추가를 하기 때문에 임시 객체의 생성, 파괴가 없어서 push_back보다 효율적일 수 있다.
-> 이동의 개념