Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Kelas utilitas untuk valarray yang digunakan untuk menentukan subset satu dimensi induk valarray. valarray Jika dianggap sebagai matriks dua dimensi dengan semua elemen dalam array, maka slice ekstrak vektor dalam satu dimensi dari array dua dimensi.
Keterangan
Kelas menyimpan parameter yang mencirikan objek jenis slice_array. Subset secara valarray tidak langsung dibangun ketika objek kelas slice muncul sebagai argumen untuk objek kelas valarray<Type>. Nilai tersimpan yang menentukan subset yang dipilih dari induk valarray meliputi:
Indeks awal di
valarray.Panjang total, atau jumlah elemen dalam
slice.Langkah, atau jarak antara indeks elemen di
valarray.
Jika set yang ditentukan oleh adalah slice subset konstanta valarray, maka slice adalah yang baru valarray. Jika set yang ditentukan oleh adalah slice subset dari nonkonstant valarray, maka slice memiliki semantik referensi ke yang asli valarray. Mekanisme evaluasi untuk objek yang tidak konstant valarray menghemat waktu dan memori.
Operasi pada valarray objek dijamin hanya jika subset sumber dan tujuan yang ditentukan oleh slice objek berbeda dan semua indeks valid.
Konstruktor
| Konstruktor | Deskripsi |
|---|---|
slice |
Mendefinisikan subset valarray yang terdiri dari kumpulan elemen yang terpisah jarak yang sama dan yang dimulai pada elemen tertentu. |
Fungsi anggota
| Fungsi anggota | Deskripsi |
|---|---|
size |
Menemukan jumlah elemen dalam slice .valarray |
start |
Menemukan indeks awal dari slice valarray. |
stride |
Menemukan jarak antara elemen di slice dari valarray. |
Persyaratan
Header:<valarray>
kumpulan nama XML: std
slice::size
Menemukan jumlah elemen dalam slice .valarray
size_t size() const;
Nilai hasil
Jumlah elemen dalam slice .valarray
Contoh
// 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
Mendefinisikan subset valarray yang terdiri dari kumpulan elemen yang terpisah jarak yang sama dan yang dimulai pada elemen tertentu.
slice();
slice(
size_t _StartIndex,
size_t _Len,
size_t stride);
Parameter
_StartIndex
Indeks valarray elemen pertama dalam subset.
_Len
Jumlah elemen dalam subset.
stride
Jarak antar elemen dalam subset.
Nilai hasil
Konstruktor default menyimpan nol untuk indeks awal, panjang total, dan langkah. Konstruktor kedua menyimpan _StartIndex untuk indeks awal, _Len untuk panjang total, dan stride untuk langkah.
Keterangan
Nilainya stride mungkin negatif.
Contoh
// 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
Menemukan indeks awal dari slice valarray.
size_t start() const;
Nilai hasil
Indeks slice awal dari valarray.
Contoh
// 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
Menemukan jarak antara elemen di slice dari valarray.
size_t stride() const;
Nilai hasil
Jarak antara elemen dalam slice .valarray
Contoh
// 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.