名稱空間
變體
操作

std::conj(std::complex)

來自 cppreference.com
< cpp‎ | 數值‎ | 複數
 
 
 
 
定義於標頭檔案 <complex>
(1)
template< class T >
std::complex<T> conj( const std::complex<T>& z );
(C++20 前)
template< class T >
constexpr std::complex<T> conj( const std::complex<T>& z );
(C++20 起)
額外過載 (自 C++11 起)
定義於標頭檔案 <complex>
(A)
std::complex<float>       conj( float f );

std::complex<double>      conj( double f );

std::complex<long double> conj( long double f );
(C++20 前)
constexpr std::complex<float>       conj( float f );

constexpr std::complex<double>      conj( double f );

constexpr std::complex<long double> conj( long double f );
(C++20 起)
(直至 C++23)
template< class FloatingPoint >
constexpr std::complex<FloatingPoint> conj( FloatingPoint f );
(C++23 起)
(B)
template< class Integer >
constexpr std::complex<double> conj( Integer i );
(C++20 前)
template< class Integer >
constexpr std::complex<double> conj( Integer i );
(C++20 起)
1) 透過反轉虛部的符號,計算 z複共軛
A,B) 為所有整數和浮點型別提供了額外的過載,這些型別被視為虛部為零的複數。
(C++11 起)

目錄

[編輯] 引數

z - 複數型別的值
f - 浮點值
i - 整數值

[編輯] 返回值

1) z 的複共軛。
A) std::complex(f)
B) std::complex<double>(i)

[編輯] 注意

不需要完全按照 (A,B) 提供額外的過載。它們只需要足以確保對於它們的引數 num

  • 如果 num 具有標準(直到 C++23)浮點型別 T,則 std::conj(num) 的效果與 std::conj(std::complex<T>(num)) 相同。
  • 否則,如果 num 具有整數型別,則 std::conj(num) 的效果與 std::conj(std::complex<double>(num)) 相同。

[編輯] 示例

#include <complex>
#include <iostream>
 
int main()
{
    std::complex<double> z(1.0, 2.0);
    std::cout << "The conjugate of " << z << " is " << std::conj(z) << '\n'
              << "Their product is " << z * std::conj(z) << '\n';
}

輸出

The conjugate of (1,2) is (1,-2)
Their product is (5,0)

[編輯] 參閱

返回複數的模
(函式模板) [編輯]
返回模的平方
(函式模板) [編輯]
從模和相角構造一個複數
(函式模板) [編輯]
C 文件conj