Namespaces
Variants

std:: valarray

From cppreference.net
헤더에 정의됨 <valarray>
template < class T >
class valarray ;

std::valarray 는 값들의 배열을 표현하고 조작하기 위한 클래스입니다. 요소별 수학 연산과 다양한 형태의 일반화된 첨자 연산자, 슬라이싱 및 간접 접근을 지원합니다.

목차

참고 사항

std::valarray 와 헬퍼 클래스들은 특정 형태의 별칭 사용(aliasing)이 없도록 정의되어, 이러한 클래스들에 대한 연산이 C 프로그래밍 언어의 restrict 키워드의 효과와 유사하게 최적화될 수 있도록 합니다. 또한, valarray 인수를 취하는 함수들과 연산자들은 컴파일러가 v1 = a * v2 + v3 ; 와 같은 표현식을 임시 객체나 다중 패스 없이 단일 루프로 실행할 수 있도록 프록시 객체를 반환할 수 있습니다. 즉, v1 [ i ] = a * v2 [ i ] + v3 [ i ] ; 와 같이 동작합니다. 그러나, expression templates 은 동일한 최적화 기술을 어떤 C++ 컨테이너에도 사용 가능하게 하며, 대부분의 수치 라이브러리들은 유연성을 위해 valarray보다 expression templates을 선호합니다. 일부 C++ 표준 라이브러리 구현들은 std::valarray 에 대한 효율적인 연산을 구현하기 위해 expression templates을 사용합니다(예: GNU libstdc++ 및 LLVM libc++). valarray가 추가로 최적화되는 경우는 드물며, 예를 들어 Intel Integrated Performance Primitives 에서와 같습니다.

템플릿 매개변수

T - 요소의 타입. 해당 타입은 NumericType 요구사항을 충족해야 함

멤버 타입

멤버 타입 정의
value_type T

멤버 함수

새로운 수치 배열을 생성함
(public member function)
수치 배열을 소멸함
(public member function)
내용을 할당함
(public member function)
valarray 요소, 슬라이스 또는 마스크를 가져오거나 설정함
(public member function)
단항 산술 연산자를 valarray의 각 요소에 적용함
(public member function)
복합 할당 연산자를 valarray의 각 요소에 적용함
(public member function)
다른 valarray와 교환함
(public member function)
valarray의 크기를 반환함
(public member function)
valarray의 크기를 변경함
(public member function)
모든 요소의 합을 계산함
(public member function)
가장 작은 요소를 반환함
(public member function)
가장 큰 요소를 반환함
(public member function)
valarray의 요소들을 제로-채움 이동함
(public member function)
valarray의 요소들을 순환 이동함
(public member function)
함수를 valarray의 모든 요소에 적용함
(public member function)

비멤버 함수

std::swap 알고리즘을 특수화합니다
(함수 템플릿)
오버로드 std::begin
(함수 템플릿)
std::end 전문화
(함수 템플릿)
두 valarray의 각 요소에, 또는 valarray와 값에 이항 연산자를 적용합니다
(함수 템플릿)
두 valarray를 비교하거나 valarray와 값을 비교합니다
(함수 템플릿)
valarray의 각 요소에 abs 함수를 적용합니다
(함수 템플릿)
지수 함수
valarray의 각 요소에 std::exp 함수를 적용합니다
(함수 템플릿)
valarray의 각 요소에 std::log 함수를 적용합니다
(함수 템플릿)
valarray의 각 요소에 std::log10 함수를 적용합니다
(함수 템플릿)
거듭제곱 함수
두 개의 valarray 또는 valarray와 값에 std::pow 함수를 적용합니다
(함수 템플릿)
valarray의 각 요소에 std::sqrt 함수를 적용합니다
(함수 템플릿)
삼각 함수
valarray의 각 요소에 std::sin 함수를 적용합니다
(함수 템플릿)
valarray의 각 요소에 std::cos 함수를 적용합니다
(함수 템플릿)
valarray의 각 요소에 std::tan 함수를 적용합니다
(함수 템플릿)
valarray의 각 요소에 std::asin 함수를 적용합니다
(함수 템플릿)
valarray의 각 요소에 std::acos 함수를 적용합니다
(함수 템플릿)
valarray의 각 요소에 std::atan 함수를 적용합니다
(함수 템플릿)
valarray와 값에 std::atan2 함수를 적용합니다
(함수 템플릿)
쌍곡선 함수
valarray의 각 요소에 std::sinh 함수를 적용합니다
(함수 템플릿)
valarray의 각 요소에 std::cosh 함수를 적용합니다
(함수 템플릿)
valarray의 각 요소에 std::tanh 함수를 적용합니다
(함수 템플릿)

헬퍼 클래스

BLAS 방식의 valarray 슬라이스: 시작 인덱스, 길이, 스트라이드
(클래스)
slice 적용 후 valarray의 부분집합에 대한 프록시
(클래스 템플릿)
valarray의 일반화된 슬라이스: 시작 인덱스, 길이 집합, 스트라이드 집합
(클래스)
gslice 적용 후 valarray의 부분집합에 대한 프록시
(클래스 템플릿)
불리언 마스크 operator[] 적용 후 valarray의 부분집합에 대한 프록시
(클래스 템플릿)
간접 operator[] 적용 후 valarray의 부분집합에 대한 프록시
(클래스 템플릿)

추론 가이드 (C++17부터)

참고 항목

너비를 지정할 수 있는 basic_simd 의 편의성 앨리어스 템플릿
(앨리어스 템플릿)
너비를 지정할 수 있는 basic_simd_mask 의 편의성 앨리어스 템플릿
(앨리어스 템플릿)
(parallelism TS v2)
데이터 병렬 벡터 타입
(클래스 템플릿)
(parallelism TS v2)
요소 타입이 bool인 데이터 병렬 타입
(클래스 템플릿)