Biblioteca Valarray de C ++ - Función gslice

Descripción

Un segmento generalizado de valarray se especifica mediante un índice de inicio, un conjunto de tamaños y un conjunto de pasos, y esta clase representa un selector de segmento generalizado de valarray (un segmento multidimensional). No contiene ni se refiere a ningún elemento, solo describe una selección de elementos para ser usados ​​como índice en valarray :: operator [].

Declaración

A continuación se muestra la declaración de la función std :: gslice.

class gslice;

C ++ 11

class gslice;

Parámetros

ninguna

Valor devuelto

ninguna

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 :: gslice.

#include <iostream>
#include <cstddef>
#include <valarray>

int main () {
   std::valarray<int> foo (12);
   for (int i=0; i<12; ++i) foo[i]=i;

   std::size_t start=1;
   std::size_t lengths[]= {2,3};
   std::size_t strides[]= {7,2};

   std::gslice mygslice (start,
      std::valarray<std::size_t>(lengths,2),
      std::valarray<std::size_t>(strides,2));

   std::valarray<int> bar = foo[mygslice];

   std::cout << "gslice:";
   for (std::size_t n=0; n<bar.size(); n++)
      std::cout << ' ' << bar[n];
   std::cout << '\n';

   return 0;
}

Compilemos y ejecutemos el programa anterior, esto producirá el siguiente resultado:

gslice: 1 3 5 8 10 0