slice
sınıfı
Bir üst valarray
öğesinin tek boyutlu alt kümelerini tanımlamak için kullanılan bir yardımcı program sınıfıvalarray
. bir valarray
, bir dizideki tüm öğelerle iki boyutlu bir matris olarak kabul edilirse slice
, iki boyutlu diziden bir boyutta bir vektör ayıklar.
Açıklamalar
sınıfı, türünde slice_array
bir nesneyi karakterize eden parametreleri depolar. öğesinin valarray
alt kümesi, sınıfın slice
bir nesnesi için valarray<Type>
bağımsız değişken olarak göründüğünde dolaylı olarak oluşturulur. Üst valarray
öğeden seçilen alt kümeyi belirten depolanan değerler şunlardır:
içinde
valarray
bir başlangıç dizini.Içindeki toplam uzunluk veya öğe
slice
sayısı.içindeki öğelerin
valarray
dizinleri arasında bir adım veya uzaklık.
tarafından slice
tanımlanan küme bir sabitin valarray
alt kümesiyse slice
, yeni valarray
bir olur. tarafından slice
tanımlanan küme, sabit valarray
olmayan bir öğesinin alt kümesiyse , slice
özgün valarray
öğesine başvuru semantiğine sahiptir. Tutarsız valarray
nesneler için değerlendirme mekanizması zaman ve bellek tasarrufu sağlar.
Nesneler üzerindeki valarray
işlemler yalnızca nesneler tarafından slice
tanımlanan kaynak ve hedef alt kümeleri ayrıysa ve tüm dizinler geçerliyse garanti edilir.
Oluşturucular
Oluşturucu | Açıklama |
---|---|
slice |
Birbirinden eşit uzaklıkta olan ve belirtilen bir öğeden başlayan bir öğe koleksiyonundan oluşan bir alt kümesini valarray tanımlar. |
Üye işlevleri
Üye işlevi | Açıklama |
---|---|
size |
bir öğesindeki slice valarray öğe sayısını bulur. |
start |
bir slice öğesinin başlangıç dizinini valarray bulur. |
stride |
bir slice öğesindeki öğeler arasındaki uzaklığı valarray bulur. |
Gereksinimler
Üst Bilgi:<valarray>
Ad alanı: std
slice::size
bir öğesindeki slice
valarray
öğe sayısını bulur.
size_t size() const;
Dönüş değeri
bir öğesindeki slice
valarray
öğelerin sayısı.
Örnek
// 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
Birbirinden eşit uzaklıkta olan ve belirtilen bir öğeden başlayan bir öğe koleksiyonundan oluşan bir alt kümesini valarray
tanımlar.
slice();
slice(
size_t _StartIndex,
size_t _Len,
size_t stride);
Parametreler
_StartIndex
Alt valarray
kümedeki ilk öğenin dizini.
_Len
Alt kümedeki öğelerin sayısı.
stride
Alt kümedeki öğeler arasındaki uzaklık.
Dönüş değeri
Varsayılan oluşturucu başlangıç dizini, toplam uzunluk ve adım için sıfırları depolar. İkinci oluşturucu başlangıç dizini, _Len
toplam uzunluk ve stride
adım için depolar_StartIndex
.
Açıklamalar
Değer stride
negatif olabilir.
Örnek
// 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
bir slice
öğesinin başlangıç dizinini valarray
bulur.
size_t start() const;
Dönüş değeri
bir öğesinin slice
valarray
başlangıç dizini.
Örnek
// 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
bir slice
öğesindeki öğeler arasındaki uzaklığı valarray
bulur.
size_t stride() const;
Dönüş değeri
bir slice
öğesindeki öğeler arasındaki uzaklık valarray
.
Örnek
// 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.