operator==,!=(std::complex)

来自cppreference.com
< cpp‎ | numeric‎ | complex


 
 
 
 
在标头 <complex> 定义
(1)
template<class T >
bool operator==(const complex<T>& lhs, const complex<T>& rhs );
(C++14 前)
template<class T >
constexprbool operator==(const complex<T>& lhs, const complex<T>& rhs );
(C++14 起)
(2)
template<class T >
bool operator==(const complex<T>& lhs, const T& rhs );
(C++14 前)
template<class T >
constexprbool operator==(const complex<T>& lhs, const T& rhs );
(C++14 起)
(3)
template<class T >
bool operator==(const T& lhs, const complex<T>& rhs );
(C++14 前)
template<class T >
constexprbool operator==(const T& lhs, const complex<T>& rhs );
(C++14 起)
(C++20 前)
(4)
template<class T >
bool operator!=(const complex<T>& lhs, const complex<T>& rhs );
(C++14 前)
template<class T >
constexprbool operator!=(const complex<T>& lhs, const complex<T>& rhs );
(C++14 起)
(C++20 前)
(5)
template<class T >
bool operator!=(const complex<T>& lhs, const T& rhs );
(C++14 前)
template<class T >
constexprbool operator!=(const complex<T>& lhs, const T& rhs );
(C++14 起)
(C++20 前)
(6)
template<class T >
bool operator!=(const T& lhs, const complex<T>& rhs );
(C++14 前)
template<class T >
constexprbool operator!=(const T& lhs, const complex<T>& rhs );
(C++14 起)
(C++20 前)

比较两个复数。标量实参被当做拥有等于实参的实部和设为零的虚部的复数。

1-3) 比较 lhsrhs 的相等性。
4-6) 比较 lhsrhs 的不等性。

!= 运算符从 operator== 运算符合成

(C++20 起)

[编辑]参数

lhs, rhs - 要比较的实参:要么都是复数,要么是一个复数和另一个匹配类型(floatdoublelongdouble)的标量

[编辑]返回值

1-3)lhs 两部分别等于 rhs,则为 true,否则为 false
4-6)!(lhs == rhs)

[编辑]示例

#include <complex>   int main(){using std::operator""i;// 或: using namespace std::complex_literals;   static_assert(1.0i == 1.0i); static_assert(2.0i != 1.0i);   constexprstd::complex z(1.0, 0.0); static_assert(z ==1.0); static_assert(1.0== z); static_assert(2.0!= z); static_assert(z !=2.0);}
close