如何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?
Run Code Online (Sandbox Code Playgroud)
我以为array
会有一个构造函数接受一对迭代器,所以我可以做array<T, N> a(v.begin(), v.end())
,但它似乎根本没有构造函数!
我知道我可以copy
将矢量放入数组中,但我宁愿直接用矢量内容初始化数组,而不是先默认构造它.我怎么能够?