vector<vector<int> > res;
res.emplace_back({1,2}); // change to res.push_back({1,2}); would work
Это дает мне ошибкуКак использовать std :: vector :: emplace_back для вектора <vector<int>>?
main.cpp:61:25: error: no matching function for call to ‘std::vector<std::vector<int> >::emplace_back(<brace-enclosed initializer list>)’
main.cpp:61:25: note: candidate is:
In file included from /usr/include/c++/4.7/vector:70:0,
from /usr/include/c++/4.7/bits/random.h:34,
from /usr/include/c++/4.7/random:50,
from /usr/include/c++/4.7/bits/stl_algo.h:67,
from /usr/include/c++/4.7/algorithm:63,
from miscalgoc.hpp:1,
from main.cpp:1:
/usr/include/c++/4.7/bits/vector.tcc:92:7: note: void std::vector<_Tp, _Alloc>::emplace_back(_Args&& ...) [with _Args = {}; _Tp = std::vector<int>; _Alloc = std::allocator<std::vector<int> >]
Как сделать эту работу? Кроме того, зачем нужен распределитель?
что ваша практическая проблема, с использованием 'push_back' вместо' emplace_back'? Какое имя и версия вашего компилятора и стандартной библиотеки вы используете? – Yakk