valarray_gslice_array

valarray_gslice_array (일반화 슬라이스 배열 프록시)

std::gslice_arraystd::gslice 인자와 함께 valarray 첨자 연산자가 사용하는 헬퍼 템플릿이에요. std::gslice 객체가 지정한 배열의 하위 집합에 대한 참조 의미를 가져요.

출처: cppreference

본문

<valarray> 헤더에 정의되어 있고, 시그니처는 다음과 같아요.

template< class T >
class gslice_array;

std::gslice_arraystd::gslice 인자와 함께 valarray 첨자 연산자가 사용하는 헬퍼 템플릿이에요. std::gslice 객체가 지정한 배열의 하위 집합에 대한 참조 의미를 가져요.

멤버 타입 (Member types)

타입 정의
value_type T

멤버 함수 (Member functions)

  • (constructor) — gslice_array 생성
  • (destructor) — gslice_array 파괴
  • operator= — 내용 할당
  • operator+= operator-= operator*= operator/= operator%= operator&= operator|= operator^= operator<<= operator>>= — 일반화 슬라이스가 참조하는 배열에 산술 연산 수행

예제 (Example)

이 코드를 실행해 봐요.

#include <cassert>
#include <cstddef>
#include <iomanip>
#include <iostream>
#include <numeric>
#include <valarray>

int main()
{
    std::valarray<int> data(32);
    std::iota(std::begin(data), std::end(data), 0);

    const std::size_t offset = 1, z = 2, y = 3, x = 4;
    const std::valarray<std::size_t> sizes{z, y, x};
    const std::valarray<std::size_t> strides{15, 5, 1};
    const std::gslice gslice = std::gslice(offset, sizes, strides);

    std::valarray<int> data_2d = data[gslice];
    // data_2d는 2*3*4 크기의 부분 배열
}

더 알아보기 (Learn more)

cppreference