operator==,!=,<,<=,>,>=(std::valarray)
cppreference.net에서
| 헤더에 정의됨 <valarray>
|
||
template< class T >
std::valarray<bool> operator==( const std::valarray<T>& lhs, const std::valarray<T>& rhs );
template< class T >
std::valarray<bool> operator!=( const std::valarray<T>& lhs, const std::valarray<T>& rhs );
template< class T >
std::valarray<bool> operator< ( const std::valarray<T>& lhs, const std::valarray<T>& rhs );
template< class T >
std::valarray<bool> operator<=( const std::valarray<T>& lhs, const std::valarray<T>& rhs );
template< class T >
std::valarray<bool> operator> ( const std::valarray<T>& lhs, const std::valarray<T>& rhs );
template< class T >
std::valarray<bool> operator>=( const std::valarray<T>& lhs, const std::valarray<T>& rhs );
|
(1) | |
template< class T >
std::valarray<bool> operator==( const typename std::valarray<T>::value_type & lhsv,
const std::valarray<T>& rhs );
template< class T >
std::valarray<bool> operator!=( const typename std::valarray<T>::value_type & lhsv,
const std::valarray<T>& rhs );
template< class T >
std::valarray<bool> operator< ( const typename std::valarray<T>::value_type & lhsv,
const std::valarray<T>& rhs );
template< class T >
std::valarray<bool> operator<=( const typename std::valarray<T>::value_type & lhsv,
const std::valarray<T>& rhs );
template< class T >
std::valarray<bool> operator> ( const typename std::valarray<T>::value_type & lhsv,
const std::valarray<T>& rhs );
template< class T >
std::valarray<bool> operator>=( const typename std::valarray<T>::value_type & lhsv,
const std::valarray<T>& rhs );
|
(2) | |
template< class T >
std::valarray<bool> operator==( const std::valarray<T>& lhs,
const typename std::valarray<T>::value_type & rhsv );
template< class T >
std::valarray<bool> operator!=( const std::valarray<T>& lhs,
const typename std::valarray<T>::value_type & rhsv );
template< class T >
std::valarray<bool> operator< ( const std::valarray<T>& lhs,
const typename std::valarray<T>::value_type & rhsv );
template< class T >
std::valarray<bool> operator<=( const std::valarray<T>& lhs,
const typename std::valarray<T>::value_type & rhsv );
template< class T >
std::valarray<bool> operator> ( const std::valarray<T>& lhs,
const typename std::valarray<T>::value_type & rhsv );
template< class T >
std::valarray<bool> operator>=( const std::valarray<T>& lhs,
const typename std::valarray<T>::value_type & rhsv );
|
(3) | |
수치 배열 내의 각 값을 다른 값과 비교합니다.
1) 의 수치 배열을 반환하며,
bool 각 요소는 지정된 비교 연산자를 lhs 와 rhs 의 해당 값에 적용하여 얻습니다. 동작은 다음 경우 정의되지 않습니다: size() != v.size().
2) 의 수치 배열을 반환하며,
bool 각 요소는 지정된 비교 연산자를 lhsv 와 해당 값 rhs 에 적용하여 얻습니다.3) 의 수치 배열을 반환하며,
bool 각 요소는 지정된 비교 연산자를 lhs 의 해당 값과 rhsv 에 적용하여 얻습니다.매개변수
| lhs, rhs | - | 비교할 숫자 배열 |
| lhsv, rhsv | - | 숫자 배열 내 각 요소와 비교할 값 |
반환값
해당 요소들의 비교 결과를 담고 있는 bool 타입의 숫자 배열.
예외
구현 정의 예외를 던질 수 있습니다.
참고
각 연산자는 다음 요구 사항이 충족되는 경우에만 인스턴스화될 수 있습니다:
- 지정된 연산자가 형식
T에 적용될 수 있습니다. - 결과 값이 모호함 없이
bool로 변환될 수 있습니다.
- 지정된 연산자가 형식
함수가 반환 형식이 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>&과 대체 형식의 모든 조합을 받도록 추가되어야 합니다. - 반환 형식은 가장 깊이 중첩된 인수 형식에 비해 템플릿 중첩 수준이 두 단계를 초과하지 않습니다.
예제
이 코드 실행
#include <iostream> #include <valarray> int main() { // valarray에서 모든 음수를 0으로 설정 std::valarray<int> v = {1, -1, 0, -3, 10, -1, -2}; std::cout << "Before: "; for (auto n : v) std::cout << n << ' '; std::cout << '\n'; v[v < 0] = 0; std::cout << "After: "; for (auto n : v) std::cout << n << ' '; std::cout << '\n'; // == 연산의 valarray<bool> 결과를 단일 bool로 변환 std::valarray<int> a = {1, 2, 3}; std::valarray<int> b = {2, 4, 6}; std::cout << "2*a == b is " << std::boolalpha << (2 * a == b).min() << '\n'; }
출력:
Before: 1 -1 0 -3 10 -1 -2 After: 1 0 0 0 10 0 0 2*a == b is true
결함 보고서
다음 동작 변경 결함 보고서는 이전에 게시된 C++ 표준에 소급 적용되었습니다.
| DR | 적용 대상 | 게시된 동작 | 올바른 동작 |
|---|---|---|---|
| LWG 3074 | C++98 |
T
가 스칼라와
valarray
모두에서 추론되어
혼합 타입 호출이 허용되지 않음 |
T
를
valarray
에서만 추론
|