Как я могу инициализировать std::array
из диапазона (как определено парой итераторов)?
Что-то вроде этого:
vector<T> v;
...
// I know v has exactly N elements (e.g. I just called v.resize(N))
// Now I want a initialized with those elements
array<T, N> a(???); // what to put here?
Я думал, что array
будет иметь конструктор, беря пару итераторов, так что я мог бы сделать array<T, N> a(v.begin(), v.end())
, но он вообще не имеет конструкторов!
Я знаю, что я могу copy
использовать вектор в массиве, но я бы предпочел инициализировать массив с векторным содержимым напрямую, не создавая его по умолчанию. Как я могу?