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 narzędzi używana do valarray definiowania jednowymiarowych podzestawów elementu nadrzędnego valarray. valarray Jeśli obiekt jest traktowany jako dwuwymiarowa macierz ze wszystkimi elementami w tablicy, wyodrębnia slice wektor w jednym wymiarze z tablicy dwuwymiarowej.
Uwagi
Klasa przechowuje parametry, które scharakteryzują obiekt typu slice_array. Podzbiór elementu valarray jest pośrednio skonstruowany, gdy obiekt klasy jest wyświetlany jako argument dla obiektu klasy slice valarray<Type>. Przechowywane wartości, które określają podzestaw wybrany z elementu nadrzędnego valarray , obejmują:
Indeks początkowy w pliku
valarray.Całkowita długość lub liczba elementów w obiekcie
slice.Krok lub odległość między indeksami elementów w obiekcie
valarray.
Jeśli zestaw zdefiniowany przez element jest slice podzbiorem stałej valarray, slice element jest nowym valarrayelementem . Jeśli zestaw zdefiniowany przez element jest slice podzbiorem niekonstantego valarray, slice 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 slice obiekty są odrębne, a wszystkie indeksy są prawidłowe.
Konstruktory
| Konstruktor | opis |
|---|---|
slice |
Definiuje podzbiór valarray obiektu, który składa się z kolekcji elementów, które są równe odległości od siebie i które zaczynają się od określonego elementu. |
Funkcje składowe
| Funkcja składowa | opis |
|---|---|
size |
Znajduje liczbę elementów w obiekcie slice valarray. |
start |
Znajduje indeks początkowy obiektu slice .valarray |
stride |
Znajduje odległość między elementami w obiekcie slice valarray. |
Wymagania
Header:<valarray>
Przestrzeń nazw: std
slice::size
Znajduje liczbę elementów w obiekcie slice valarray.
size_t size() const;
Wartość zwracana
Liczba elementów w obiekcie slice valarray.
Przykład
// slice_size.cpp
// compile with: /EHsc
#include <valarray>
#include <iostream>
int main( )
{
using namespace std;
int i;
size_t sizeVA, sizeVAR;
valarray<int> va ( 20 ), vaResult;
for ( i = 0 ; i < 20 ; i += 1 )
va [ i ] = i+1;
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;
slice vaSlice ( 3 , 6 , 3 );
vaResult = va [ vaSlice ];
cout << "The slice of valarray va is vaResult = "
<< "va[slice( 3, 6, 3)] =\n ( ";
for ( i = 0 ; i < 6 ; i++ )
cout << vaResult [ i ] << " ";
cout << ")." << endl;
sizeVAR = vaSlice.size ( );
cout << "The size of slice vaSlice is: "
<< sizeVAR << "." << endl;
}
The operand valarray va is:
( 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ).
The size of the valarray is: 20.
The slice of valarray va is vaResult = va[slice( 3, 6, 3)] =
( 4 7 10 13 16 19 ).
The size of slice vaSlice is: 6.
slice::slice
Definiuje podzbiór valarray obiektu, który składa się z kolekcji elementów, które są równe odległości od siebie i które zaczynają się od określonego elementu.
slice();
slice(
size_t _StartIndex,
size_t _Len,
size_t stride);
Parametry
_StartIndex
Indeks valarray pierwszego elementu w podzestawie.
_Len
Liczba elementów w podzestawie.
stride
Odległość między elementami w podzestawie.
Wartość zwracana
Domyślny konstruktor przechowuje zera dla indeksu początkowego, całkowitej długości i kroku. Drugi konstruktor przechowuje _StartIndex indeks początkowy, _Len łączną długość i stride dla kroku.
Uwagi
Wartość może być ujemna stride .
Przykład
// slice_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 ] = 2 * (i + 1 );
cout << "The operand valarray va is:\n( ";
for ( i = 0 ; i < 20 ; i++ )
cout << va [ i ] << " ";
cout << ")." << endl;
slice vaSlice ( 1 , 7 , 3 );
vaResult = va [ vaSlice ];
cout << "\nThe slice of valarray va is vaResult:"
<< "\nva[slice( 1, 7, 3)] = ( ";
for ( i = 0 ; i < 7 ; i++ )
cout << vaResult [ i ] << " ";
cout << ")." << endl;
}
The operand valarray va is:
( 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 ).
The slice of valarray va is vaResult:
va[slice( 1, 7, 3)] = ( 4 10 16 22 28 34 40 ).
slice::start
Znajduje indeks początkowy obiektu slice .valarray
size_t start() const;
Wartość zwracana
Indeks początkowy obiektu slice valarray.
Przykład
// slice_start.cpp
// compile with: /EHsc
#include <valarray>
#include <iostream>
int main( )
{
using namespace std;
int i;
size_t startVAR;
valarray<int> va ( 20 ), vaResult;
for ( i = 0 ; i < 20 ; i += 1 )
va [ i ] = i+1;
cout << "The operand valarray va is:\n ( ";
for ( i = 0 ; i < 20 ; i++ )
cout << va [ i ] << " ";
cout << ")." << endl;
slice vaSlice ( 3 , 6 , 3 );
vaResult = va [ vaSlice ];
cout << "The slice of valarray va is vaResult = "
<< "va[slice( 3, 6, 3)] =\n ( ";
for ( i = 0 ; i < 6 ; i++ )
cout << vaResult [ i ] << " ";
cout << ")." << endl;
startVAR = vaSlice.start ( );
cout << "The start index of slice vaSlice is: "
<< startVAR << "." << endl;
}
The operand valarray va is:
( 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ).
The slice of valarray va is vaResult = va[slice( 3, 6, 3)] =
( 4 7 10 13 16 19 ).
The start index of slice vaSlice is: 3.
slice::stride
Znajduje odległość między elementami w obiekcie slice valarray.
size_t stride() const;
Wartość zwracana
Odległość między elementami w obiekcie slice valarray.
Przykład
// slice_stride.cpp
// compile with: /EHsc
#include <valarray>
#include <iostream>
int main( )
{
using namespace std;
int i;
size_t strideVAR;
valarray<int> va ( 20 ), vaResult;
for ( i = 0 ; i < 20 ; i += 1 )
va [ i ] = 3 * ( i + 1 );
cout << "The operand valarray va is:\n ( ";
for ( i = 0 ; i < 20 ; i++ )
cout << va [ i ] << " ";
cout << ")." << endl;
slice vaSlice ( 4 , 5 , 3 );
vaResult = va [ vaSlice ];
cout << "The slice of valarray va is vaResult = "
<< "va[slice( 4, 5, 3)] =\n ( ";
for ( i = 0 ; i < 5 ; i++ )
cout << vaResult [ i ] << " ";
cout << ")." << endl;
strideVAR = vaSlice.stride ( );
cout << "The stride of slice vaSlice is: "
<< strideVAR << "." << endl;
}
The operand valarray va is:
( 3 6 9 12 15 18 21 24 27 30 33 36 39 42 45 48 51 54 57 60 ).
The slice of valarray va is vaResult = va[slice( 4, 5, 3)] =
( 15 24 33 42 51 ).
The stride of slice vaSlice is: 3.