# std::norm(std::complex)

< cpp‎ | numeric‎ | complex

定义于头文件 `<complex>` |  |
| (1) |
template< class T > T norm( const std::complex<T>& z ); |  | (C++20 前)
template< class T > constexpr T norm( const std::complex<T>& z ); |  | (C++20 起)
| (2) |
float norm( float z ); template< class DoubleOrInteger > double norm( DoubleOrInteger z ); long double norm( long double z ); |  | (C++11 起) (C++20 前)
constexpr float norm( float z ); template< class DoubleOrInteger > constexpr double norm( DoubleOrInteger z ); constexpr long double norm( long double z ); |  | (C++20 起)

1) 返回复数 `z` 模的平方。

2) 为 float 、 double 、 long double 和所有整数类型提供附加重载，把参数当做拥有零虚部的复数。 | (C++11 起)

### 参数

z | - | 复数值

### 返回值

`z` 的模的平方。

### 注意

此函数所计算的范数亦被称为域范数或绝对平方。

`std::abs` 提供复数的欧几里得范数，其计算成本更高。某些情形中，可用 `std::norm` 替换它，例如若 abs(z1) > abs(z2) 则 norm(z1) > norm(z2) 。

### 参阅

abs(std::complex) | 返回复数的模 (函数模板)
conj | 返回复共轭 (函数模板)
polar | 从模和辐角构造复数 (函数模板)