Clase mask_array
Clase de plantilla auxiliar e interna que admite objetos que son subconjuntos de objetos valarray
principales, especificados con una expresión booleana, proporcionando operaciones entre matrices de subconjuntos.
Comentarios
La clase describe un objeto que almacena una referencia a un objeto va
de la clase valarray<Type>
, junto con un objeto ba
de la clase valarray<bool>
, que describe la secuencia de elementos que se pueden seleccionar desde el objeto valarray<Type>
.
Para construir un objeto mask_array<Type>
, se escribe únicamente una expresión de formato va[ba]
. Las funciones miembro de la clase mask_array
se comportarán como las firmas de función correspondientes definidas para valarray<Type>
, excepto en que solo la secuencia de elementos seleccionados se ve afectada.
La secuencia consta como máximo de elementos ba.size
. Un elemento J
solo se incluye si ba[J]
es true
. Hay tantos elementos en la secuencia como elementos true
en ba
. Si I
es el índice del elemento true más bajo en ba
, va[I]
es el elemento cero de la secuencia seleccionada.
Ejemplo
// 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;
}
Salida
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).
Requisitos
Encabezado:<valarray>
Espacio de nombres:std
Consulte también
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente las Cuestiones de GitHub como mecanismo de retroalimentación para el contenido y lo sustituiremos por un nuevo sistema de retroalimentación. Para más información, consulta:Enviar y ver comentarios de