Namespaces
Variants

Standard library header <complex>

From cppreference.net
Standard library headers

Этот заголовок является частью numeric библиотеки.

Содержание

Классы

тип комплексного числа
(шаблон класса)

Функции

Операции
применяет унарные операторы к комплексным числам
(шаблон функции)
выполняет арифметические операции с комплексными числами для двух комплексных значений или комплексного числа и скаляра
(шаблон функции)
(удалено в C++20)
сравнивает два комплексных числа или комплексное число и скаляр
(шаблон функции)
сериализует и десериализует комплексное число
(шаблон функции)
возвращает вещественную часть
(шаблон функции)
возвращает мнимую часть
(шаблон функции)
возвращает модуль комплексного числа
(шаблон функции)
возвращает фазовый угол
(шаблон функции)
возвращает квадрат модуля
(шаблон функции)
возвращает комплексно сопряжённое число
(шаблон функции)
(C++11)
возвращает проекцию на сферу Римана
(шаблон функции)
создает комплексное число из модуля и фазового угла
(function template)
Экспоненциальные функции
экспонента комплексного числа с основанием e
(шаблон функции)
комплексный натуральный логарифм с разрезами ветвей вдоль отрицательной вещественной оси
(шаблон функции)
комплексный десятичный логарифм с разрезом ветви вдоль отрицательной вещественной оси
(шаблон функции)
Степенные функции
комплексная степень, один или оба аргумента могут быть комплексными числами
(шаблон функции)
комплексный квадратный корень в области правой полуплоскости
(шаблон функции)
Тригонометрические функции
вычисляет синус комплексного числа ( sin(z) )
(шаблон функции)
вычисляет косинус комплексного числа ( cos(z) )
(шаблон функции)
вычисляет тангенс комплексного числа ( tan(z) )
(шаблон функции)
вычисляет арксинус комплексного числа ( arcsin(z) )
(шаблон функции)
вычисляет арккосинус комплексного числа ( arccos(z) )
(шаблон функции)
вычисляет арктангенс комплексного числа ( arctan(z) )
(шаблон функции)
Гиперболические функции
вычисляет гиперболический синус комплексного числа ( sinh(z) )
(шаблон функции)
вычисляет гиперболический косинус комплексного числа ( cosh(z) )
(шаблон функции)
вычисляет гиперболический тангенс комплексного числа ( tanh(z) )
(шаблон функции)
вычисляет гиперболический арксинус комплексного числа ( arsinh(z) )
(шаблон функции)
вычисляет гиперболический арккосинус комплексного числа ( arcosh(z) )
(шаблон функции)
вычисляет гиперболический арктангенс комплексного числа ( artanh(z) )
(шаблон функции)
Литералы
литерал std::complex представляющий чисто мнимое число
(функция)

Синопсис

namespace std {
    template<class T> class complex;
    template<> class complex<float>;
    template<> class complex<double>;
    template<> class complex<long double>;
    // операторы:
    template<class T> constexpr complex<T> operator+(
        const complex<T>&, const complex<T>&);
    template<class T> constexpr complex<T> operator+(const complex<T>&, const T&);
    template<class T> constexpr complex<T> operator+(const T&, const complex<T>&);
    template<class T> constexpr complex<T> operator-(
        const complex<T>&, const complex<T>&);
    template<class T> constexpr complex<T> operator-(const complex<T>&, const T&);
    template<class T> constexpr complex<T> operator-(const T&, const complex<T>&);
    template<class T> constexpr complex<T> operator*(
        const complex<T>&, const complex<T>&);
    template<class T> constexpr complex<T> operator*(const complex<T>&, const T&);
    template<class T> constexpr complex<T> operator*(const T&, const complex<T>&);
    template<class T> constexpr complex<T> operator/(
        const complex<T>&, const complex<T>&);
    template<class T> constexpr complex<T> operator/(const complex<T>&, const T&);
    template<class T> constexpr complex<T> operator/(const T&, const complex<T>&);
    template<class T> constexpr complex<T> operator+(const complex<T>&);
    template<class T> constexpr complex<T> operator-(const complex<T>&);
    template<class T> constexpr bool operator==(const complex<T>&, const complex<T>&);
    template<class T> constexpr bool operator==(const complex<T>&, const T&);
    template<class T> constexpr bool operator==(const T&, const complex<T>&);
    template<class T> constexpr bool operator!=(const complex<T>&, const complex<T>&);
    template<class T> constexpr bool operator!=(const complex<T>&, const T&);
    template<class T> constexpr bool operator!=(const T&, const complex<T>&);
    template<class T, class CharT, class Traits>
    basic_istream<CharT, Traits>&
    operator>>(basic_istream<CharT, Traits>&, complex<T>&);
    template<class T, class CharT, class Traits>
    basic_ostream<CharT, Traits>&
    operator<<(basic_ostream<CharT, Traits>&, const complex<T>&);
    // значения:
    template<class T> constexpr T real(const complex<T>&);
    template<class T> constexpr T imag(const complex<T>&);
    template<class T> T abs(const complex<T>&);
    template<class T> T arg(const complex<T>&);
    template<class T> constexpr T norm(const complex<T>&);
    template<class T> constexpr complex<T> conj(const complex<T>&);
    template<class T> complex<T> proj(const complex<T>&);
    template<class T> complex<T> polar(const T&, const T& = 0);
    // трансцендентные функции:
    template<class T> complex<T> acos(const complex<T>&);
    template<class T> complex<T> asin(const complex<T>&);
    template<class T> complex<T> atan(const complex<T>&);
    template<class T> complex<T> acosh(const complex<T>&);
    template<class T> complex<T> asinh(const complex<T>&);
    template<class T> complex<T> atanh(const complex<T>&);
    template<class T> complex<T> cos  (const complex<T>&);
    template<class T> complex<T> cosh (const complex<T>&);
    template<class T> complex<T> exp  (const complex<T>&);
    template<class T> complex<T> log  (const complex<T>&);
    template<class T> complex<T> log10(const complex<T>&);
    template<class T> complex<T> pow(const complex<T>&, const T&);
    template<class T> complex<T> pow(const complex<T>&, const complex<T>&);
    template<class T> complex<T> pow(const T&, const complex<T>&);
    template<class T> complex<T> sin (const complex<T>&);
    template<class T> complex<T> sinh(const complex<T>&);
    template<class T> complex<T> sqrt(const complex<T>&);
    template<class T> complex<T> tan (const complex<T>&);
    template<class T> complex<T> tanh(const complex<T>&);
    // интерфейс tuple:
    template<class T> struct tuple_size;
    template<size_t I, class T> struct tuple_element;
    template<class T> struct tuple_size<complex<T>>;
    template<size_t I, class T> struct tuple_element<I, complex<T>>;
    template<size_t I, class T>
      constexpr T& get(complex<T>&) noexcept;
    template<size_t I, class T>
      constexpr T&& get(complex<T>&&) noexcept;
    template<size_t I, class T>
      constexpr const T& get(const complex<T>&) noexcept;
    template<size_t I, class T>
      constexpr const T&& get(const complex<T>&&) noexcept;
    // комплексные литералы:
    inline namespace literals {
        inline namespace complex_literals {
            constexpr complex<long double> operator""il(long double);
            constexpr complex<long double> operator""il(unsigned long long);
            constexpr complex<double> operator""i(long double);
            constexpr complex<double> operator""i(unsigned long long);
            constexpr complex<float> operator""if(long double);
            constexpr complex<float> operator""if(unsigned long long);
        }
    }
}

Класс std::complex

template<class T>
class complex {
public:
    typedef T value_type;
    constexpr complex(const T& re = T(), const T& im = T());
    constexpr complex(const complex&) = default;
    template<class X> constexpr explicit(/* см. страницу конструктора */)
        complex(const complex<X>&);
    constexpr T real() const;
    constexpr void real(T);
    constexpr T imag() const;
    constexpr void imag(T);
    constexpr complex<T>& operator= (const T&);
    constexpr complex<T>& operator+=(const T&);
    constexpr complex<T>& operator-=(const T&);
    constexpr complex<T>& operator*=(const T&);
    constexpr complex<T>& operator/=(const T&);
    constexpr complex& operator=(const complex&);
    template<class X> constexpr complex<T>& operator= (const complex<X>&);
    template<class X> constexpr complex<T>& operator+=(const complex<X>&);
    template<class X> constexpr complex<T>& operator-=(const complex<X>&);
    template<class X> constexpr complex<T>& operator*=(const complex<X>&);
    template<class X> constexpr complex<T>& operator/=(const complex<X>&);
};

Отчёты о дефектах

Следующие отчеты об изменениях поведения, влияющие на дефекты, были применены задним числом к ранее опубликованным стандартам C++.

DR Применяется к Поведение в опубликованной версии Корректное поведение
LWG 79 C++98 аргумент по умолчанию второго параметра
функции polar отсутствовал в синопсисе
добавлен