Computer Science/C & C++

[C++] valarray Template Class | valarray 템플릿 클래스

lww7438 2020. 3. 9. 11:32

\(\texttt{valarray}\) Template Class

\(\texttt{valarray}\) 템플릿 클래스

- 수치값들이 들어있는 배열에 대한 연산을 지원하는 템플릿이다.
- \(\texttt{vector}\)나 \(\texttt{array}\) 클래스 또한 여러 종류의 수치값들을 리스트로 저장하는 컨테이너 템플릿 클래스이지만, \(\texttt{valarray}\)처럼 모든 사칙연산을 지원하지는 않는다.
- \(\texttt{<valarray>}\) 헤더 파일에 정의되어 있다.
- \(\texttt{valarray}\) 객체를 선언할 때, 수치값의 데이터형을 홑화살괄호(<>)안에 기입하고, 앞에 식별자 \(\texttt{valarray}\)를 붙인다.


Syntax (문법)

- \(\texttt{valarray}\) 객체 선언

// Ex. dataType형 valarray 객체 arrayName 선언 예시

#include <valarray>
...

valarray<dataType> arrayName;              // 0개의 dataType형의 배열 arrayName
valarray<dataType> arrayName(n);           // n개의 dataType형 값을 저장할 수 있는 배열 arrayName
valarray<dataType> arrayName(v, n);        // n개의 dataType형 값을 모두 v값으로 초기화한 배열 arrayName
valarray<dataType> arrayName(Arr, n);      // n개의 dataType형 값을 일반 배열 Arr의 첫 n개의 원소로 초기화한 배열 arrayName

arrayName = {12.34, 13.974, 1.2, 3.14};    // C++11부터 valarray 객체에도 일반 배열처럼 초기자 목록을 사용할 수 있게 되었다.

\(\texttt{valarray}\) Template Class Method (\(\texttt{valarray}\) 템플릿 클래스 메서드)

// valarray Class Method

operator[]()    // 대괄호를 통해 개별 원소에 접근할 수 있다. (일반적인 배열 표기를 허용한다.)
size()          // 원소들의 개수를 리턴한다.
sum()           // 원소들의 합을 리턴한다.
max()           // 최대 원소를 리턴한다.
min()           // 최소 원소를 리턴한다.