Sdílet prostřednictvím


Třída mask_array

Interní pomocné šablony třídy, které podporují objekty, které jsou podmnožinami nadřazených valarray objektů, určené logickým výrazem, poskytováním operací mezi poli podmnožina.

Poznámky

Třída popisuje objekt, který ukládá odkaz na objekt va třídy valarray<Type>, spolu s objektem ba třídy valarray<bool>, který popisuje posloupnost prvků vybrat z objektu valarray<Type> .

Objekt vytvoříte mask_array<Type> pouze zápisem výrazu formuláře va[ba]. Členské funkce třídy mask_array se pak chovají jako odpovídající podpisy funkce definované pro valarray<Type>, s tím rozdílem, že je ovlivněna pouze posloupnost vybraných prvků.

Sekvence se skládá z většiny ba.size prvků. J Prvek je zahrnut pouze pokud ba[J] je true. V sekvenci je tolik prvků, kolik jich obsahuje true ba. Pokud I je index nejnižšího prvku true v ba, pak va[I] je prvek nula ve vybrané sekvenci.

Příklad

// 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;
}

Výstup

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).

Požadavky

Header:<valarray>

Obor názvů: std

Viz také

Bezpečný přístup z více vláken ve standardní knihovně C++