push_back 함수는 객체를 집어 넣는 형식으로, 객체가 없이 삽입을 하려면 복사를 할 객체가 필요합니다.
vector<item> vt
item a; // 기본 생성자 호출
vt.push_back(item("abc,1,234)); // vector내에서 또 생성자 호출
vt.push_back(std::move(a));
이래서 넣을때 기본적으로 생성자를 두번 호출한다.
emplace_back 함수는 함수 호출할 때 생성자가 필요한 인자를 받은후 함수내에서 객체를 생성해 삽입한다.
vector<item> vt
vt.emplace_back("abc",1,234); // 생성자 호출
생성자는 한번만 호출되게 된다.
기본적으로 emplace_back이 속도가 더 빠르니 emplace_back을 이용하자
[C++] 미리 컴파일된 헤더(precompiled Header)? (0) | 2019.08.31 |
---|