3

ベクトルの内容で 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() );

正常に動作しているように見えますが、どのような場合でも動作することを確認したいと思います。

4

1 に答える 1

3

はい、これで問題ありません。vector の内容は連続していることが保証されています ( [vector.overview], §1C++ 標準を参照)。

valarrayC++11 以降、初期化子リストを使用して直接初期化できることに注意してください。

于 2014-12-02T12:51:31.783 に答える