Кто-нибудь знает связанную ссылку для такого использования 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
}
Я не уверен, что ваш настоящий вопрос, но код, который вы показали, вставляет новый вектор внутри B
, Новый вектор инициализируется путем вызова его конструктор (4) который принимает два аргумента A.cbegin() , A.cend()
,
Вы можете думать об этом как о оптимизированной версии
B.push_back(std::vector<int>(A.cbegin() , A.cend()));
Вам лучше поискать их в Google или cppreference.com прежде чем просить дальнейших ссылок.
emplace_back()
: http://en.cppreference.com/w/cpp/container/vector/emplace_backcbegin()/cend()
(начиная с C ++ 11): они одинаковы с begin()/end()
http://en.cppreference.com/w/cpp/container/vector/begin