爲了填充矢量的 內容,您可以編寫以下內容以確保/安全/良好實踐嗎?如何從矢量初始化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