如何从向量初始化valarray?

时间:2014-12-02 12:48:15

标签: c++ vector valarray

编写以下内容是否正确/安全/良好做法是为了填充valarray 向量的内容?

vector<int> myVect = {2,0,1,0,0,1,1,0,0,0}; // Any vector
valarray<int> myVala ( &(myVect[0]), myVect.size() );
//Edit: as suggested by Xeo, this code looks much cleaner (C++11)
valarray<int> myVala ( myVect.data(), myVect.size() );

它似乎工作正常,但我想确定它适用于任何情况。

1 个答案:

答案 0 :(得分:3)

是的,这完全没问题。向量的内容保证是连续的(参见C ++标准中的[vector.overview], §1)。

请注意,从C ++ 11开始,您可以直接使用初始化列表初始化valarray