operators

operator==,!=,<,<=,>,>=std::valarray

template< class T > 
valarray<bool> operator==( const valarray<T>& lhs, const valarray<T>& rhs );
template< class T > 
valarray<bool> operator!=( const valarray<T>& lhs, const valarray<T>& rhs );
template< class T > 
valarray<bool> operator<( const valarray<T>& lhs, const valarray<T>& rhs );
template< class T > 
valarray<bool> operator<=( const valarray<T>& lhs, const valarray<T>& rhs );
template< class T > 
valarray<bool> operator>( const valarray<T>& lhs, const valarray<T>& rhs );
template< class T > 
valarray<bool> operator>=( const valarray<T>& lhs, const valarray<T>& rhs );
(1)
template< class T > 
valarray<bool> operator==( const T& lhsv, const valarray<T>& rhs );
template< class T > 
valarray<bool> operator!=( const T& lhsv, const valarray<T>& rhs );
template< class T > 
valarray<bool> operator<( const T& lhsv, const valarray<T>& rhs );
template< class T > 
valarray<bool> operator<=( const T& lhsv, const valarray<T>& rhs );
template< class T > 
valarray<bool> operator>( const T& lhsv, const valarray<T>& rhs );
template< class T > 
valarray<bool> operator>=( const T& lhsv, const valarray<T>& rhs );
(2)
template< class T > 
valarray<bool> operator==( const valarray<T>& lhs, const T& rhsv );
template< class T > 
valarray<bool> operator!=( const valarray<T>& lhs, const T& rhsv );
template< class T > 
valarray<bool> operator<( const valarray<T>& lhs, const T& rhsv );
template< class T > 
valarray<bool> operator<=( const valarray<T>& lhs, const T& rhsv );
template< class T > 
valarray<bool> operator>( const valarray<T>& lhs, const T& rhsv );
template< class T > 
valarray<bool> operator>=( const valarray<T>& lhs, const T& rhsv );
(3)

Compares each value within the numeric array with another value.

1) Returns a numeric array of bool containing elements each of which is obtained by applying the indicated comparison operator to the corresponding values of lhs and rhs

The behavior is undefined if size() != v.size().

2) Returns a numeric array of bool containing elements each of which is obtained by applying the indicated comparison operator to lhsv and the corresponding value of rhs .
3) Returns a numeric array of bool containing elements each of which is obtained by applying the indicated comparison operator to the corresponding value of lhs and rhsv.

Parameters

lhs, rhs - numeric arrays to compare
lhsv, rhsv - values to compare to each element within a numeric array

Return value

A numeric array of bool containing comparison results of corresponding elements.

Exceptions

(none).

Notes

Each of the operators can only be instantiated if the following requirements are met:

  • The indicated operator can be applied to type T
  • The result value can be unambiguously converted to bool.

The function can be implemented with the return type different from std::valarray. In this case, the replacement type has the following properties:

Example

#include <iostream>
#include <valarray>
 
int main()
{
    // zero all negatives in a valarray
    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';
 
    // convert the vector<bool> result of == to a single 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';
 
}

Output:

Before: 1 -1 0 -3 10 -1 -2
After: 1 0 0 0 10 0 0
2*a == b is true

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
http://en.cppreference.com/w/cpp/numeric/valarray/operator_cmp

在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号

意见反馈
返回顶部