Bibliothèque valarray C ++ - Opérateur de fonction []

La description

Il accède à un élément ou à un indice.

Déclaration

Voici la déclaration de la fonction 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);

Paramètres

  • n - C'est la position d'un élément dans le valarray.

  • slc - Il s'agit d'un objet slice spécifiant quels éléments du tableau de valeurs sont sélectionnés.

  • gslc - Il s'agit d'un objet gslice spécifiant quels éléments du valarray sont sélectionnés.

  • msk - C'est un valarray avec ses éléments identifiant si chaque élément de * this est sélectionné ou non: Si un élément de * this a son élément correspondant dans msk défini sur true, il fait partie du sous-tableau renvoyé, sinon ce n'est pas le cas.

  • ind - C'est un valarray avec ses éléments identifiant quels éléments de * this sont sélectionnés: Chaque élément de ind est l'index d'un élément de * this qui fera partie du sous-tableau retourné.

Valeur de retour

Il renvoie * this.

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 :: 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;
}

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

myarray: 3 20 99 20 3 99 3 99 13 20