slice
클래스
부모의 valarray
1차원 하위 집합을 정의하는 데 사용되는 유틸리티 클래스 valarray
입니다. 배열의 valarray
모든 요소가 있는 2차원 행렬로 간주되는 경우 2차원 배열 slice
에서 1차원으로 벡터를 추출합니다.
설명
클래스는 형식 slice_array
의 개체를 특징짓는 매개 변수를 저장합니다. 클래스의 valarray
개체가 클래스 slice
개체에 대한 valarray<Type>
인수로 표시될 때 해당 하위 집합은 간접적으로 생성됩니다. 부모 valarray
에서 선택한 하위 집합을 지정하는 저장된 값은 다음과 같습니다.
의 시작 인덱스입니다
valarray
.의 총 길이 또는 요소
slice
수입니다.에 있는
valarray
요소의 인덱스 사이의 간격 또는 보폭입니다.
a slice
에 의해 정의된 집합이 상수 valarray
slice
의 하위 집합인 경우 새 집합입니다valarray
. a slice
에 의해 정의된 집합이 비규 valarray
격의 하위 집합인 slice
경우 원래 valarray
에 대한 참조 의미 체계가 있습니다. 비대화 valarray
개체에 대한 평가 메커니즘은 시간과 메모리를 절약합니다.
개체에 정의된 원본 및 대상 하위 집합 slice
이 고유하고 모든 인덱스가 유효한 경우에만 개체에 대한 valarray
작업이 보장됩니다.
생성자
생성자 | Description |
---|---|
slice |
간격이 같고 지정된 요소에서 시작하는 요소 컬렉션으로 구성된 하위 집합 valarray 을 정의합니다. |
멤버 함수
멤버 함수 | 설명 |
---|---|
size |
의 요소 slice 수를 찾습니다 valarray . |
start |
의 시작 인덱스 찾기 slice valarray |
stride |
의 요소 slice 간 거리를 찾습니다 valarray . |
요구 사항
헤더:<valarray>
네임스페이스: std
slice::size
의 요소 slice
수를 찾습니다 valarray
.
size_t size() const;
반환 값
의 요소 slice
수입니다 valarray
.
예시
// 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
간격이 같고 지정된 요소에서 시작하는 요소 컬렉션으로 구성된 하위 집합 valarray
을 정의합니다.
slice();
slice(
size_t _StartIndex,
size_t _Len,
size_t stride);
매개 변수
_StartIndex
valarray
하위 집합에 있는 첫 번째 요소의 인덱스입니다.
_Len
하위 집합의 요소 수입니다.
stride
하위 집합의 요소 간 거리입니다.
반환 값
기본 생성자는 시작 인덱스, 총 길이 및 진행 속도에 대해 0을 저장합니다. 두 번째 생성자는 시작 인덱스에 대해 _StartIndex
, 총 길이에 대해 _Len
, 진행 속도에 대해 stride
를 저장합니다.
설명
값은 stride
음수일 수 있습니다.
예시
// 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
의 시작 인덱스 찾기 slice
valarray
size_t start() const;
반환 값
의 시작 인덱 slice
스입니다 valarray
.
예시
// 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
의 요소 slice
간 거리를 찾습니다 valarray
.
size_t stride() const;
반환 값
의 요소 slice
간 거리입니다 valarray
.
예시
// 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.