Bibliothèque Valarray C ++ - Fonction gslice

La description

Une tranche généralisée valarray est spécifiée par un index de départ, un ensemble de tailles et un ensemble de foulées et cette classe représente un sélecteur de tranche généralisée valarray (une tranche multidimensionnelle). Il ne contient ni ne fait référence à aucun élément - il décrit seulement une sélection d'éléments à utiliser comme index dans valarray :: operator [].

Déclaration

Voici la déclaration de la fonction std :: gslice.

class gslice;

C ++ 11

class gslice;

Paramètres

aucun

Valeur de retour

aucun

Exceptions

Basic guarantee - si une opération effectuée sur les éléments lève une exception.

Courses de données

Tous les éléments effectivement copiés sont accessibles.

Exemple

L'exemple ci-dessous explique la fonction 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;
}

Compilons et exécutons le programme ci-dessus, cela produira le résultat suivant -

gslice: 1 3 5 8 10 0