编写以下内容是否正确/安全/良好做法是为了填充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() );
它似乎工作正常,但我想确定它适用于任何情况。
答案 0 :(得分:3)
是的,这完全没问题。向量的内容保证是连续的(参见C ++标准中的[vector.overview], §1
)。
请注意,从C ++ 11开始,您可以直接使用初始化列表初始化valarray
。