valarray_slice_array

valarray_slice_array (슬라이스 배열 프록시)

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

출처: cppreference

본문

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

template< class T > class slice_array;

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

멤버 타입 (Member types)

타입 정의
value_type T

멤버 함수 (Member functions)

  • (constructor) — slice_array 생성
  • (destructor) — slice_array 파괴
  • operator= — 내용 할당
  • operator+= operator-= operator*= operator/= operator%= operator&= operator|= operator^= operator<<= operator>>= — slice가 참조하는 배열에 산술 연산 수행

예제 (Example)

이 코드를 실행해 봐요.

#include <iostream>
#include <valarray>

class Matrix
{
    int dim;
    std::valarray<int> data;
public:
    explicit Matrix(int dim, int init = 0)
        : dim{dim}, data(init, dim*dim) {}
    void clear(int value = 0) { data = value; }
    void identity() { clear(); diagonal() = 1; }
    int& operator()(int x, int y) { return data[dim * y + x]; }

    std::slice_array<int> diagonal()
    {
        return data[std::slice(0, dim, dim + 1)];
    }
};

int main()
{
    Matrix m(3);
    m.identity();
    std::cout << m(0,0) << ' ' << m(1,1) << ' ' << m(2,2) << '\n';
}

더 알아보기 (Learn more)

cppreference