operator+,-,*,/,%,&,|,^,<<,>>,&&,|| (std::valarray)
|
헤더 파일에 정의됨
<valarray>
|
||
|
template
<
class
T
>
std::
valarray
<
T
>
operator
+
(
const
std::
valarray
<
T
>
&
lhs,
const
std::
valarray
<
T
>
&
rhs
)
;
|
(1) | |
|
template
<
class
T
>
std::
valarray
<
T
>
operator
+
(
const
typename
std::
valarray
<
T
>
::
value_type
&
val,
|
(2) | |
|
template
<
class
T
>
std::
valarray
<
T
>
operator
+
(
const
std::
valarray
<
T
>
&
lhs,
|
(3) | |
두 valarray의 각 요소에 이항 연산자를 적용하거나, valarray와 값에 적용합니다.
목차 |
매개변수
| rhs | - | 숫자 배열 |
| lhs | - | 숫자 배열 |
| val | - |
T
타입의 값
|
반환값
매개변수와 동일한 크기를 가진 valarray입니다.
참고
두 인수가 크기가 다른 valarray인 경우의 동작은 정의되지 않습니다.
이 함수는 반환 타입이 std::valarray 와 다르게 구현될 수 있습니다. 이 경우, 대체 타입은 다음과 같은 속성을 가집니다:
-
- const 멤버 함수 모두가 std::valarray 에 제공됩니다.
- std::valarray , std::slice_array , std::gslice_array , std::mask_array 및 std::indirect_array 는 대체 타입으로부터 생성될 수 있습니다.
- const std:: valarray < T > & 를 받는 모든 함수에 대해 begin() 과 end() 를 제외하고 (C++11 이후) , 동일한 함수들이 대체 타입들을 받도록 추가되어야 합니다;
- 두 개의 const std:: valarray < T > & 인수를 받는 모든 함수에 대해, const std:: valarray < T > & 와 대체 타입들의 모든 조합을 받는 동일한 함수들이 추가되어야 합니다.
- 반환 타입은 가장 깊이 중첩된 인수 타입에 대해 두 수준 이상의 템플릿 중첩을 추가하지 않습니다.
예제
여러 개의 Quadratic equations 의 실수 근을 찾습니다.
#include <cstddef> #include <iostream> #include <valarray> int main() { std::valarray<double> a(1, 8); std::valarray<double> b{1, 2, 3, 4, 5, 6, 7, 8}; std::valarray<double> c = -b; // literals must also be of type T until LWG3074 (double in this case) std::valarray<double> d = std::sqrt(b * b - 4.0 * a * c); std::valarray<double> x1 = 2.0 * c / (-b + d); std::valarray<double> x2 = 2.0 * c / (-b - d); std::cout << "quadratic equation: root 1: root 2: b: c:\n"; for (std::size_t i = 0; i < a.size(); ++i) std::cout << a[i] << "\u00B7x\u00B2 + " << b[i] << "\u00B7x + " << c[i] << " = 0 " << std::fixed << x1[i] << " " << x2[i] << std::defaultfloat << " " << -x1[i] - x2[i] << " " << x1[i] * x2[i] << '\n'; }
출력:
quadratic equation: root 1: root 2: b: c: 1·x² + 1·x + -1 = 0 -1.618034 0.618034 1 -1 1·x² + 2·x + -2 = 0 -2.732051 0.732051 2 -2 1·x² + 3·x + -3 = 0 -3.791288 0.791288 3 -3 1·x² + 4·x + -4 = 0 -4.828427 0.828427 4 -4 1·x² + 5·x + -5 = 0 -5.854102 0.854102 5 -5 1·x² + 6·x + -6 = 0 -6.872983 0.872983 6 -6 1·x² + 7·x + -7 = 0 -7.887482 0.887482 7 -7 1·x² + 8·x + -8 = 0 -8.898979 0.898979 8 -8
결함 보고서
다음 동작 변경 결함 보고서는 이전에 발표된 C++ 표준에 소급 적용되었습니다.
| DR | 적용 대상 | 게시된 동작 | 올바른 동작 |
|---|---|---|---|
| LWG 3074 | C++98 |
T
가 스칼라와
valarray
모두에서 추론되어
혼합 타입 호출이 허용되지 않음
|
valarray
에서만
T
를 추론
|
참고 항목
|
valarray의 각 요소에 단항 산술 연산자를 적용합니다
(public member function) |
|
|
valarray의 각 요소에 복합 할당 연산자를 적용합니다
(public member function) |