如何从矢量初始化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());
它似乎工作正常,但我想确保它适用于任何情况。
这些天来,我会质疑使用'valarray'是否是好的做法。这是标准库的害群之马。 – 2014-12-02 12:54:52
这是为什么?我打算使用它们来选择掩码和切片的子集。我对这个结构并不熟悉,但一见成效。 – wxc3 2014-12-02 15:22:42
它只是从未受欢迎。大多数实现实际上并没有得到很好的优化,这就影响了它的使用。这有点鸡与鸡蛋的情况。 – 2014-12-02 15:46:50