Namespaces
Variants

std:: conj (std::complex)

From cppreference.net
Определено в заголовке <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)
Определено в заголовке <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) Для всех целочисленных и вещественных типов предоставлены дополнительные перегрузки, которые обрабатываются как комплексные числа с нулевой мнимой компонентой.
(since C++11)

Содержание

Параметры

z - комплексное значение
f - значение с плавающей запятой
i - целочисленное значение

Возвращаемое значение

1) Комплексно-сопряженное число для z .
A) std:: complex ( f ) .
Б) 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)

Смотрите также

возвращает модуль комплексного числа
(function template)
возвращает квадрат модуля
(function template)
создаёт комплексное число из модуля и фазового угла
(function template)
C documentation для conj