Namespaces
Variants

std:: conj (std::complex)

From cppreference.net
(원문에 번역할 텍스트가 없으므로 동일한 HTML 구조를 유지합니다)
헤더 파일에 정의됨 <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 complex conjugate 를 허수부의 부호를 반전시켜 계산합니다.
A,B) 모든 정수 및 부동소수점 타입에 대해 추가 오버로드가 제공되며, 이들은 허수부가 0인 복소수로 처리됩니다.
(since 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 문서 for conj