emplace_back 사용법 (C++ 11)에 대한 관련 참조를 아는 사람이 있습니까?다른 벡터 (부분 벡터)를 포함하는 emplace_back 사용법 (C++ 11)
void func(const vector <int> &A){
vector <vector <int> > B;
B.emplace_back(A.cbegin() , A.cend()); // emplace vector A directly
}
emplace_back 사용법 (C++ 11)에 대한 관련 참조를 아는 사람이 있습니까?다른 벡터 (부분 벡터)를 포함하는 emplace_back 사용법 (C++ 11)
void func(const vector <int> &A){
vector <vector <int> > B;
B.emplace_back(A.cbegin() , A.cend()); // emplace vector A directly
}
추가 검색을 요청하기 전에 Google 또는 cppreference.com에서 검색하는 것이 좋습니다. emplace_back()
를 들어
cbegin()/cend()
를 들어 http://en.cppreference.com/w/cpp/container/vector/emplace_backbegin()/end()
http://en.cppreference.com/w/cpp/container/vector/begin과 동일하지만, 코드 당신 표시된 코드는 B
안에 새로운 벡터를 삽입합니다. 새 벡터는 두 개의 인수 A.cbegin() , A.cend()
을 사용하는 constructor (4)을 호출하여 초기화됩니다.
당신은 설명 내 게으름에 대한
B.push_back(std::vector<int>(A.cbegin() , A.cend()));
Daniel 감사합니다. 좋은 힌트입니다. –
죄송의 최적화 된 버전으로 생각할 수 있습니다. 고마워, [링크] (http://en.cppreference.com/w/cpp/container/vector/emplace_back)는 실제로 충분한 힌트가 아닙니다. 그러나 @ daniel-frey는 push_back에서 생성자 (4)를 언급하는 좋은 방향을 제시했습니다. –