Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Klasa
Klasa valarray narzędzi używana do definiowania wielowymiarowych podzestawów obiektu valarray. Jeśli obiekt valarray jest traktowany jako macierz wielowymiarowa ze wszystkimi elementami w tablicy, wyodrębnia gslice wektor z tablicy wielowymiarowej.
Uwagi
Klasa przechowuje parametry, które scharakteryzują obiekt typu gslice_array. Podzbiór elementu valarray jest pośrednio skonstruowany, gdy obiekt klasy jest wyświetlany jako argument dla obiektu klasy gslice valarray<Type>. Przechowywane wartości, które określają podzestaw wybrany z elementu nadrzędnego valarray , obejmują:
Indeks początkowy.
Wektor długości klasy
valarray<size_t>.Wektor kroku klasy
valarray<size_t>.
Te dwa wektory muszą mieć taką samą długość.
Jeśli zestaw zdefiniowany przez element jest gslice podzbiorem stałej valarray, gslice element jest nowym valarrayelementem . Jeśli zestaw zdefiniowany przez element jest gslice podzbiorem niekonstantego valarray, gslice element zawiera semantyka odwołania do oryginalnego valarrayelementu . Mechanizm oceny dla obiektów niekonstantych valarray oszczędza czas i pamięć.
Operacje na valarray obiektach są gwarantowane tylko wtedy, gdy podzestawy źródłowe i docelowe zdefiniowane przez gslice obiekty są odrębne, a wszystkie indeksy są prawidłowe.
Konstruktory
| Konstruktor | opis |
|---|---|
gslice |
Definiuje podzbiór obiektu valarray , który składa się z wielu wycinków valarray , które zaczynają się od określonego elementu. |
Funkcje składowe
| Funkcja składowa | opis |
|---|---|
size |
Znajduje wartości tablicy określające liczby elementów w ogólnym wycinku elementu valarray. |
start |
Znajduje indeks początkowy ogólnego wycinka obiektu valarray. |
stride |
Znajduje odległość między elementami w ogólnym wycinku elementu valarray. |
Wymagania
Header:<valarray>
Przestrzeń nazw: std
gslice::gslice
Klasa valarray narzędzi używana do definiowania wielowymiarowych wycinków obiektu valarray.
gslice();
gslice(
size_t _StartIndex,
const valarray<size_t>& _LenArray,
const valarray<size_t>& _IncArray);
Parametry
_StartIndex
Indeks valarray pierwszego elementu w podzestawie.
_LenArray
Określenie valarray liczby elementów w każdym gsliceobiekcie .
_IncArray
Określenie valarray kroku w każdym gsliceobiekcie .
Wartość zwracana
Domyślny konstruktor przechowuje zero dla indeksu początkowego i wektorów o zerowej długości dla wektorów długości i kroku. Drugi konstruktor przechowuje _StartIndex indeks początkowy, _LenArray tablicę długości i _IncArray tablicę kroków.
Uwagi
gslice Definiuje podzbiór obiektu valarray , który składa się z wielu wycinków valarray , które zaczynają się od tego samego określonego elementu. Możliwość używania tablic do definiowania wielu wycinków jest jedyną różnicą między gslice i slice::slice. Pierwszy wycinek ma pierwszy element z indeksem _StartIndex, liczbę elementów określonych przez pierwszy element elementu _LenArrayi krok podany przez pierwszy element ._IncArray Następny zestaw wycinków ortogonalnych zawiera pierwsze elementy podane przez pierwszy wycinek. Drugi element elementu _LenArray określa liczbę elementów. Krok jest podawany przez drugi element elementu _IncArray. Trzeci wymiar wycinków będzie przyjmować elementy tablicy dwuwymiarowej jako elementy początkowe i kontynuować analogicznie.
Przykład
// gslice_ctor.cpp
// compile with: /EHsc
#include <valarray>
#include <iostream>
int main( )
{
using namespace std;
int i;
valarray<int> va ( 20 ), vaResult;
for ( i = 0 ; i < 20 ; i+=1 )
va [ i ] = i;
cout << "The operand valarray va is:" << endl << "(";
for ( i = 0 ; i < 20 ; i++ )
cout << " " << va [ i ];
cout << " )" << endl;
valarray<size_t> Len ( 2 ), Stride ( 2 );
Len [0] = 4;
Len [1] = 4;
Stride [0] = 7;
Stride [1] = 4;
gslice vaGSlice ( 0, Len, Stride );
vaResult = va [ vaGSlice ];
cout << "The valarray for vaGSlice is vaResult:" << endl
<< "va[vaGSlice] = (";
for ( i = 0 ; i < 8 ; i++ )
cout << " " << vaResult [ i ];
cout << ")" << endl;
}
The operand valarray va is:
( 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 )
The valarray for vaGSlice is vaResult:
va[vaGSlice] = ( 0 4 8 12 7 11 15 19)
gslice::size
Znajduje wartości tablicy określające liczby elementów w ogólnym wycinku elementu valarray.
valarray<size_t> size() const;
Wartość zwracana
Określenie valarray liczby elementów w każdym wycinku ogólnego wycinka obiektu valarray.
Uwagi
Funkcja składowa zwraca przechowywane długości wycinków.
Przykład
// gslice_size.cpp
// compile with: /EHsc
#include <valarray>
#include <iostream>
int main( )
{
using namespace std;
int i;
size_t sizeVA;
valarray<int> va ( 20 ), vaResult;
for ( i = 0 ; i < 20 ; i+=1 )
va [ i ] = i;
cout << "The operand valarray va is:\n ( ";
for ( i = 0 ; i < 20 ; i++ )
cout << va [ i ] << " ";
cout << ")." << endl;
sizeVA = va.size ( );
cout << "The size of the valarray is: "
<< sizeVA << "." << endl << endl;
valarray<size_t> Len ( 2 ), Stride ( 2 );
Len [0] = 4;
Len [1] = 4;
Stride [0] = 7;
Stride [1] = 4;
gslice vaGSlice ( 0, Len, Stride );
vaResult = va [ vaGSlice ];
const valarray <size_t> sizeGS = vaGSlice.size ( );
cout << "The valarray for vaGSlice is vaResult:"
<< "\n va[vaGSlice] = ( ";
for ( i = 0 ; i < 8 ; i++ )
cout << vaResult [ i ] << " ";
cout << ")." << endl;
cout << "The size of vaResult is:"
<< "\n vaGSlice.size ( ) = ( ";
for ( i = 0 ; i < 2 ; i++ )
cout << sizeGS[ i ] << " ";
cout << ")." << endl;
}
The operand valarray va is:
( 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 ).
The size of the valarray is: 20.
The valarray for vaGSlice is vaResult:
va[vaGSlice] = ( 0 4 8 12 7 11 15 19 ).
The size of vaResult is:
vaGSlice.size ( ) = ( 4 4 ).
gslice::start
Znajduje indeks początkowy ogólnego wycinka obiektu valarray.
size_t start() const;
Wartość zwracana
Indeks początkowy ogólnego wycinka obiektu valarray.
Przykład
// gslice_start.cpp
// compile with: /EHsc
#include <valarray>
#include <iostream>
int main( )
{
using namespace std;
int i;
valarray<int> va ( 20 ), vaResult;
for (i = 0 ; i < 20 ; i+=1 )
va [ i ] = i;
cout << "The operand valarray va is:\n ( ";
for ( i = 0 ; i < 20 ; i++ )
cout << va [ i ] << " ";
cout << ")." << endl;
valarray<size_t> Len ( 2 ), Stride ( 2 );
Len [0] = 4;
Len [1] = 4;
Stride [0] = 7;
Stride [1] = 4;
gslice vaGSlice ( 0, Len, Stride );
vaResult = va [ vaGSlice ];
size_t vaGSstart = vaGSlice.start ( );
cout << "The valarray for vaGSlice is vaResult:"
<< "\n va[vaGSlice] = ( ";
for (i = 0 ; i < 8 ; i++ )
cout << vaResult [ i ] << " ";
cout << ")." << endl;
cout << "The index of the first element of vaResult is: "
<< vaGSstart << "." << endl;
}
The operand valarray va is:
( 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 ).
The valarray for vaGSlice is vaResult:
va[vaGSlice] = ( 0 4 8 12 7 11 15 19 ).
The index of the first element of vaResult is: 0.
gslice::stride
Znajduje odległość między elementami w ogólnym wycinku elementu valarray.
valarray<size_t> stride() const;
Wartość zwracana
Określenie valarray odległości między elementami w każdym wycinku ogólnego wycinka obiektu valarray.
Przykład
// gslice_stride.cpp
// compile with: /EHsc
#include <valarray>
#include <iostream>
int main( )
{
using namespace std;
int i;
valarray<int> va ( 20 ), vaResult;
for (i = 0 ; i < 20 ; i+=1 )
va [ i ] = i;
cout << "The operand valarray va is:\n ( ";
for (i = 0 ; i < 20 ; i++ )
cout << va [ i ] << " ";
cout << ")." << endl;
valarray<size_t> Len ( 2 ), Stride ( 2 );
Len [0] = 4;
Len [1] = 4;
Stride [0] = 7;
Stride [1] = 4;
gslice vaGSlice ( 0, Len, Stride );
vaResult = va [ vaGSlice ];
const valarray <size_t> strideGS = vaGSlice.stride ( );
cout << "The valarray for vaGSlice is vaResult:"
<< "\n va[vaGSlice] = ( ";
for ( i = 0 ; i < 8 ; i++ )
cout << vaResult [ i ] << " ";
cout << ")." << endl;
cout << "The strides of vaResult are:"
<< "\n vaGSlice.stride ( ) = ( ";
for ( i = 0 ; i < 2 ; i++ )
cout << strideGS[ i ] << " ";
cout << ")." << endl;
}
The operand valarray va is:
( 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 ).
The valarray for vaGSlice is vaResult:
va[vaGSlice] = ( 0 4 8 12 7 11 15 19 ).
The strides of vaResult are:
vaGSlice.stride ( ) = ( 7 4 ).