Namespaces
Variants

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

From cppreference.net
定义于头文件 <complex>
(1)
template < class T >
bool operator == ( const complex < T > & lhs, const complex < T > & rhs ) ;
(C++14 前)
template < class T >
constexpr bool 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 >
constexpr bool 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 >
constexpr bool 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 >
constexpr bool 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 >
constexpr bool 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 >
constexpr bool operator ! = ( const T & lhs, const complex < T > & rhs ) ;
(C++14 起)
(C++20 前)

比较两个复数。标量参数将被视为实部等于参数值且虚部为零的复数。

1-3) 比较 lhs rhs 是否相等。
4-6) 比较 lhs rhs 是否不相等。

!= 运算符由 operator== 合成生成

(C++20 起)

参数

lhs, rhs - 待比较的参数:可以是两个复数,或一个复数与一个匹配类型的标量( float , double , long double

返回值

1-3) true lhs 的对应部分等于 rhs ,否则为 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);
    constexpr std::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);
}