Biblioteca valarray de C ++: operador de función []
Descripción
Accede al elemento o subíndice.
Declaración
A continuación se muestra la declaración de la función std :: valarray :: operator [].
T operator[] (size_t n) const;
T& operator[] (size_t n);
C ++ 11
const T& operator[] (size_t n) const;
T& operator[] (size_t n);
Parámetros
n - Es la posición de un elemento en el valarray.
slc - Es un objeto de corte que especifica qué elementos del valarray se seleccionan.
gslc - Es un objeto gslice que especifica qué elementos del valarray se seleccionan.
msk - es un valarray
con sus elementos identificando si cada elemento de * this está seleccionado o no: Si un elemento en * this tiene su elemento correspondiente en msk establecido en verdadero, es parte de la submatriz devuelta, de lo contrario no lo es. ind - es un valarray
con sus elementos identificando qué elementos de * this están seleccionados: Cada elemento en ind es el índice de un elemento en * this que será parte de la submatriz devuelta.
Valor devuelto
Devuelve * this.
Excepciones
Basic guarantee - si alguna operación realizada en los elementos arroja una excepción.
Carreras de datos
Se accede a todos los elementos efectivamente copiados.
Ejemplo
En el siguiente ejemplo se explica la función std :: valarray :: operator [].
#include <iostream>
#include <valarray>
int main () {
std::valarray<int> myarray (10);
myarray[std::slice(2,3,3)]=10;
size_t lengths[]={2,2};
size_t strides[]={6,2};
myarray[std::gslice(1, std::valarray<size_t>(lengths,2),
std::valarray<size_t>(strides,2))]=20;
std::valarray<bool> mymask (10);
for (int i=0; i<10; ++i) mymask[i]= ((i%2)==0);
myarray[mymask] += std::valarray<int>(3,5);
//indirect:
size_t sel[]= {2,5,7};
std::valarray<size_t> myselection (sel,3);
myarray[myselection]=99;
std::cout << "myarray: ";
for (size_t i=0; i<myarray.size(); ++i)
std::cout << myarray[i] << ' ';
std::cout << '\n';
return 0;
}
Compilemos y ejecutemos el programa anterior, esto producirá el siguiente resultado:
myarray: 3 20 99 20 3 99 3 99 13 20