정글에서 온 개발자
1/20 TIL C++ emplace_back() 본문
결론적으로 push_back보다 빠르다.
vector, deque,list 등 컨테이너에는 push_back() 을 통해 끝에 요소를 추가할 수 있다.
emplace_back()은 괄호 안에 해당 컨테이너의 요소 생성자를 컨테이너 안에서 직접 호출하여 생성한다.
push_back()과 비교하면 더 이해가 되는데, push_back은 밖에서 생성한 요소를 복사, 이동하는 형식을 취한다.
vector<pair<int,int>> vec;
pair temp = {1,2};
vec.push_back(temp); //복사
vec.push_back({3,4}); //이렇게 하더라도 외부에서 생성돼 복사된다.
그러나 emplace_back()은 vector 내부에서 생성하기 때문에 이동, 복사 과정이 없다.
vector<pair<int,int>> vec;
vec.push_back(2,3);
'TIL' 카테고리의 다른 글
TIL 2/4 Nginx,Apache없이 Certbot 적용하기 (with Golang) (0) | 2025.02.05 |
---|---|
1/21 TIL 버전은 어떤 기준으로 올라갈까? 시맨틱 버저닝 (0) | 2025.01.22 |
1/20 TIL 이 쿼리가 왜 빨라졌을까? (0) | 2025.01.20 |
Go 웹 API swagger로 문서화 패키지 고르기 (0) | 2025.01.20 |
1/19 TIL 내가 몰랐던 Go 웹 서버 개발시 코드 패턴 (0) | 2025.01.19 |