Libreria C ++ valarray - Operatore di funzione []
Descrizione
Accede all'elemento o al pedice.
Dichiarazione
Di seguito è riportata la dichiarazione per la funzione 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);
Parametri
n - È la posizione di un elemento nel valarray.
slc - È un oggetto slice che specifica quali elementi del valarray sono selezionati.
gslc - È un oggetto gslice che specifica quali elementi del valarray sono selezionati.
msk - È un valarray
con i suoi elementi che identificano se ogni elemento di * this è selezionato o meno: Se un elemento in * this ha il suo elemento corrispondente in msk impostato su true, fa parte del sotto-array restituito, altrimenti non lo è ind - È un valarray
con i suoi elementi che identificano quali elementi di * this sono selezionati: Ogni elemento in ind è l'indice di un elemento in * this che farà parte del sotto-array restituito.
Valore di ritorno
Restituisce * questo.
Eccezioni
Basic guarantee - se qualsiasi operazione eseguita sugli elementi genera un'eccezione.
Gare di dati
Si accede a tutti gli elementi effettivamente copiati.
Esempio
Nell'esempio seguente viene illustrata la funzione 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;
}
Compiliamo ed eseguiamo il programma sopra, questo produrrà il seguente risultato:
myarray: 3 20 99 20 3 99 3 99 13 20