Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Klasa
Wewnętrzny, pomocniczy szablon klasy, który obsługuje obiekty, które są podzbiorami obiektów nadrzędnych valarray , określone z wyrażeniem logicznym, zapewniając operacje między tablicami podzestawu.
Uwagi
Klasa opisuje obiekt, który przechowuje odwołanie do obiektu klasy , wraz z obiektem va ba klasy valarray<Type>valarray<bool>, który opisuje sekwencję elementów do wybrania z valarray<Type> obiektu.
Obiekt tworzy mask_array<Type> się tylko przez napisanie wyrażenia formularza va[ba]. Funkcje składowe klasy mask_array zachowują się wtedy jak odpowiednie sygnatury funkcji zdefiniowane dla valarray<Type>elementu , z tą różnicą, że dotyczy to tylko sekwencji wybranych elementów.
Sekwencja składa się z większości ba.size elementów. Element J jest dołączany tylko wtedy, gdy ba[J] element ma wartość true. Istnieje tyle elementów w sekwencji, ile elementów znajduje true się w elemecie ba. Jeśli I jest indeksem najniższego rzeczywistego elementu w elemecie ba, va[I] wartość to zero elementu w wybranej sekwencji.
Przykład
// 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;
}
Wyjście
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).
Wymagania
Header:<valarray>
Przestrzeń nazw: std