1. push_back
- 원형
- void push_back(const value_type& value);
- 인자
- value : 추가할 원소 값
- value_type : 추가할 원소들의 타입
- 리턴 값
- 없음
- 재할당 발생 시 Allocator::allocate()를 통해 예외 처리 가능
- 할당 실 패 시 bad_alloc
- 기능
- vector의 요소 끝에 원소 추가
- 작동 방식
- 삭입할 객체 받음
- push_back 내에 임시 객체 생성
- 임시 객체를 vector에 추가
- 임시 객체 소멸
- 장점
- 암시적인 생성자만 생성
- 포인터를 변수로 사용할 시 안전
- 단점
- 생성자와 소멸자가 두번씩 호출 되어 성능 저하
2. emplae
- 원형
- iterator emplace (Arg&&.. args);
- 인자
- args : 가변인자들
- 리턴 값
- 없음
- 기능
- vector의 요소 끝에 원소 추가
- 작동박식
- 삽입할 객체를 받음
- vector 내에서 직접 객체 생성
- 장점
- 임시 객체의 생성/파괴/복사가 이루어지지 않으므로 성능이 빠름
- 단점
- 모든 유형의 생성자를 호출
- 포인터 형식을 받았을 경우 정상동작 하지 않을 수 있음
- 생성자는 호출이 되었으나, 소멸자 시 delete 되지 않아 오류 발생 할 수 있음
'Programming > C++' 카테고리의 다른 글
정수 제한 (0) | 2022.03.04 |
---|---|
우선 순위 큐 (Priority Queue) (0) | 2021.02.19 |
prev_permutation(), next_permutation() (0) | 2021.01.07 |
strftime() (0) | 2020.08.30 |