共用方式為


mask_array 類別

內部輔助類別範本,可藉由在子集數位之間提供作業,以支援使用布爾表達式指定之父 valarray 物件的子集物件。

備註

類別描述一個物件,該物件會儲存 類別對象的valarray<Type>參考,以及 ba 類別的物件valarray<bool>,該物件描述要從 valarray<Type> 物件中選取va的專案序列。

您只能藉由撰寫表單 va[ba]的運算式來建構 mask_array<Type> 物件。 類別的成員 mask_array 函式接著的行為就像為 valarray<Type>定義的對應函式簽章,不同之處在於只會影響所選元素的序列。

序列最多由 ba.size 元素組成。 只有在 是 trueba[J],才會包含 專案J。 序列中有許多元素,因為中batrue 元素。 如果 I 是 中 ba最低 true 元素的索引,則 va[I] 為選取序列中的元素零。

範例

// mask_array.cpp
// compile with: /EHsc
#include <valarray>
#include <iostream>

int main( )
{
   using namespace std;
   int i;

   valarray<int> va ( 10 );
   for ( i = 0 ; i < 10 ; i += 2 )
      va [ i ] =  i;
   for ( i = 1 ; i < 10 ; i += 2 )
      va [ i ] =  -1;

   cout << "The initial operand valarray is:  ( ";
      for ( i = 0 ; i < 10 ; i++ )
         cout << va [ i ] << " ";
   cout << ")." << endl;

   // Use masked subsets to assign a value of 10
   // to all elements grrater than 3 in value
   va [va > 3 ] = 10;
   cout << "The modified operand valarray is:  ( ";
      for ( i = 0 ; i < 10 ; i++ )
         cout << va [ i ] << " ";
   cout << ")." << endl;
}

輸出

The initial operand valarray is:  (0 -1 2 -1 4 -1 6 -1 8 -1).
The modified operand valarray is:  (0 -1 2 -1 10 -1 10 -1 10 -1).

需求

標頭:<valarray>

命名空間std

另請參閱

C++ 標準程式庫中的執行緒安全