코가손의 블로그

Vector의 push_back vs emplace_back 차이점 본문

CS 및 기본기

Vector의 push_back vs emplace_back 차이점

Cogason 2023. 1. 16. 11:32
push_back
  • 객채 삽입을 위해 임시 객체를 하나 생성한다음 그 객체를 복사하여 벡터에 삽입
  • 삽입이 끝나면 임시 객체 파괴

잠깐 쓰고 버릴 메모리를 굳이 할당하여 불필요한 연산이 생긴다

 

emplace_back
  • 가변인자 템플릿을 사용해서 삽입하려는 객체 자체를 생성할 수 있음

임시 객체를 만들 필요가 없다

 

누가 더 좋나? 상황에 따라 다르다

vector<vector<int>> vector;
vector.push_back({1, 0});
vector.emplace_back({1, 0}); // 불가능

 

'CS 및 기본기' 카테고리의 다른 글

Vector vs List 차이와 캐시적중률  (0) 2023.01.16
메모리 영역, 스택 프레임  (0) 2021.11.09
레지스터  (0) 2021.11.09
컴퓨터 구조  (0) 2021.11.09
엔디안(Endianness)  (0) 2021.11.09
Comments