C++ åèæå
- C++11
- C++14
- C++17
- C++20
- C++ ç¼è¯å¨æ¯ææ åµè¡¨
- ç¬ç«ä¸å®¿ä¸»å®ç°
- C++ è¯è¨
- C++ å ³é®è¯
- é¢å¤çå¨
- C++ æ ååºå¤´æä»¶
- æ ååºå¤´æä»¶ <ctime>
- æ ååºå¤´æä»¶ <cstring>
- æ ååºå¤´æä»¶ <set>
- æ ååºå¤´æä»¶ <cctype>
- æ ååºå¤´æä»¶ <cwctype>
- æ ååºå¤´æä»¶ <utility>
- æ ååºå¤´æä»¶ <queue>
- æ ååºå¤´æä»¶ <complex>
- æ ååºå¤´æä»¶ <iterator>
- æ ååºå¤´æä»¶ <algorithm>
- æ ååºå¤´æä»¶ <valarray>
- æ ååºå¤´æä»¶ <numeric>
- æ ååºå¤´æä»¶ <cmath>
- æ ååºå¤´æä»¶ <iosfwd>
- æ ååºå¤´æä»¶ <ios>
- æ ååºå¤´æä»¶ <iomanip>
- æ ååºå¤´æä»¶ <streambuf>
- æ ååºå¤´æä»¶ <istream>
- æ ååºå¤´æä»¶ <ostream>
- æ ååºå¤´æä»¶ <iostream>
- æ ååºå¤´æä»¶ <sstream>
- æ ååºå¤´æä»¶ <clocale>
- æ ååºå¤´æä»¶ <vector>
- æ ååºå¤´æä»¶ <deque>
- æ ååºå¤´æä»¶ <list>
- æ ååºå¤´æä»¶ <map>
- æ ååºå¤´æä»¶ <cwchar>
- æ ååºå¤´æä»¶ <locale>
- æ ååºå¤´æä»¶ <codecvt>
- æ ååºå¤´æä»¶ <bitset>
- æ ååºå¤´æä»¶ <functional>
- æ ååºå¤´æä»¶ <stdexcept>
- æ ååºå¤´æä»¶ <csignal>
- æ ååºå¤´æä»¶ <csetjmp>
- æ ååºå¤´æä»¶ <stack>
- æ ååºå¤´æä»¶ <cassert>
- æ ååºå¤´æä»¶ <cerrno>
- æ ååºå¤´æä»¶ <memory>
- æ ååºå¤´æä»¶ <typeindex>
- æ ååºå¤´æä»¶ <type_traits>
- æ ååºå¤´æä»¶ <chrono>
- æ ååºå¤´æä»¶ <initializer_list>
- æ ååºå¤´æä»¶ <tuple>
- æ ååºå¤´æä»¶ <scoped_allocator>
- æ ååºå¤´æä»¶ <cstdint>
- æ ååºå¤´æä»¶ <cinttypes>
- æ ååºå¤´æä»¶ <system_error>
- æ ååºå¤´æä»¶ <cuchar>
- æ ååºå¤´æä»¶ <array>
- æ ååºå¤´æä»¶ <forward_list>
- æ ååºå¤´æä»¶ <unordered_set>
- æ ååºå¤´æä»¶ <unordered_map>
- æ ååºå¤´æä»¶ <random>
- æ ååºå¤´æä»¶ <ratio>
- æ ååºå¤´æä»¶ <cfenv>
- æ ååºå¤´æä»¶ <regex>
- æ ååºå¤´æä»¶ <atomic>
- æ ååºå¤´æä»¶ <thread>
- æ ååºå¤´æä»¶ <mutex>
- æ ååºå¤´æä»¶ <future>
- æ ååºå¤´æä»¶ <condition_variable>
- æ ååºå¤´æä»¶ <any>
- æ ååºå¤´æä»¶ <optional>
- æ ååºå¤´æä»¶ <variant>
- æ ååºå¤´æä»¶ <memory_resource>
- æ ååºå¤´æä»¶ <string_view>
- æ ååºå¤´æä»¶ <charconv>
- æ ååºå¤´æä»¶ <execution>
- æ ååºå¤´æä»¶ <filesystem>
- æ ååºå¤´æä»¶ <concepts>
- æ ååºå¤´æä»¶ <coroutine>
- æ ååºå¤´æä»¶ <compare>
- æ ååºå¤´æä»¶ <version>
- æ ååºå¤´æä»¶ <source_location>
- æ ååºå¤´æä»¶ <format>
- æ ååºå¤´æä»¶ <span>
- æ ååºå¤´æä»¶ <ranges>
- æ ååºå¤´æä»¶ <bit>
- æ ååºå¤´æä»¶ <numbers>
- æ ååºå¤´æä»¶ <syncstream>
- æ ååºå¤´æä»¶ <stop_token>
- æ ååºå¤´æä»¶ <semaphore>
- æ ååºå¤´æä»¶ <latch>
- æ ååºå¤´æä»¶ <barrier>
- æ ååºå¤´æä»¶ <string>
- æ ååºå¤´æä»¶ <cstddef>
- æ ååºå¤´æä»¶ <limits>
- æ ååºå¤´æä»¶ <cfloat>
- æ ååºå¤´æä»¶ <climits>
- æ ååºå¤´æä»¶ <cstdlib>
- æ ååºå¤´æä»¶ <new>
- æ ååºå¤´æä»¶ <typeinfo>
- æ ååºå¤´æä»¶ <exception>
- æ ååºå¤´æä»¶ <cstdarg>
- æ ååºå¤´æä»¶ <ciso646>
- æ ååºå¤´æä»¶ <cstdalign>
- æ ååºå¤´æä»¶ <cstdbool>
- æ ååºå¤´æä»¶ <fstream>
- æ ååºå¤´æä»¶ <cstdio>
- æ ååºå¤´æä»¶ <strstream>
- æ ååºå¤´æä»¶ <shared_mutex>
- æ ååºå¤´æä»¶ <ccomplex>
- æ ååºå¤´æä»¶ <ctgmath>
- 注é
- å ·åè¦æ±
- åè½ç¹æ§æµè¯ (C++20)
- å·¥å ·åº
- ç±»åæ¯æï¼åºæ¬ç±»åãRTTIãç±»åç¹æ§ï¼
- æ¦å¿µåº (C++20)
- é误å¤ç
- 卿å å管ç
- æ¥æåæ¶é´å·¥å ·
- å符串åº
- 容å¨åº
- è¿ä»£å¨åº
- èå´åº (C++20)
- ç®æ³åº
- æ°å¼åº
- è¾å ¥/è¾åºåº
- æä»¶ç³»ç»åº
- æ¬å°ååº
- æ£å表达å¼åº
- ååæä½åº
- çº¿ç¨æ¯æåº
- å®éªæ§ C++ ç¹æ§
- æç¨çèµæº
- ç´¢å¼
- std 符å·ç´¢å¼
- åç¨æ¯æ (C++20)
- C++ å ³é®è¯
ä½ç½®ï¼é¦é¡µ > C++ åèæå >C++ æ ååºå¤´æä»¶ > æ ååºå¤´æä»¶ <complex>
æ ååºå¤´æä»¶ <complex>
æ¤å¤´æä»¶æ¯æ°å¼åºçä¸é¨åã
ç±»
| 夿°ç±»å (类模æ¿) | |
| 夿°ç±»å (类模æ¿ç¹å) |
彿°
è¿ç® | |
| 坹夿°è¿ç¨ä¸å
è¿ç®ç¬¦ (彿°æ¨¡æ¿) | |
| å¨ä¸¤ä¸ªå¤æ°ï¼æä¸ä¸ªå¤æ°ä¸ä¸ä¸ªæ éä¸è¿è¡å¤æ°ç®æ¯è¿ç® (彿°æ¨¡æ¿) | |
| (C++20 ä¸ç§»é¤) |
æ¯è¾ä¸¤ä¸ªå¤æ°ï¼æä¸ä¸ªå¤æ°ä¸ä¸ä¸ªæ é (彿°æ¨¡æ¿) |
| 夿°çåºåååååºåå (彿°æ¨¡æ¿) | |
| è¿åå®é¨ (彿°æ¨¡æ¿) | |
| è¿åèé¨ (彿°æ¨¡æ¿) | |
| è¿å夿°ç模 (彿°æ¨¡æ¿) | |
| è¿åè¾è§ (彿°æ¨¡æ¿) | |
| è¿å模(èæ°)çå¹³æ¹ (彿°æ¨¡æ¿) | |
| è¿åå¤å
±è½ (彿°æ¨¡æ¿) | |
| (C++11) |
è¿åå°é»æ¼çä¸çæå½± (彿°æ¨¡æ¿) |
| 仿¨¡åè¾è§æé 夿° (彿°æ¨¡æ¿) | |
ææ°å½æ° | |
| 以 e 为åºå¤æ°çææ° (彿°æ¨¡æ¿) | |
| 沿è´å®è½´åå²çå¤èªç¶å¯¹æ° (彿°æ¨¡æ¿) | |
| 沿è´å®è½´åå²çå¤å¸¸ç¨å¯¹æ° (彿°æ¨¡æ¿) | |
å¹å½æ° | |
| 夿°å¹ï¼ä¸æä¸¤ä¸ªåæ°å¯ä¸ºå¤æ° (彿°æ¨¡æ¿) | |
| å³åå¹³é¢èå´ä¸çå¤å¹³æ¹æ ¹ (彿°æ¨¡æ¿) | |
ä¸è§å½æ° | |
| 计ç®å¤æ°çæ£å¼¦ï¼ sin(z) ï¼ (彿°æ¨¡æ¿) | |
| 计ç®å¤æ°çä½å¼¦ï¼ cos(z) ï¼ (彿°æ¨¡æ¿) | |
| 计ç®å¤æ°çæ£åï¼ tan(z) ï¼ (彿°æ¨¡æ¿) | |
| (C++11) |
计ç®å¤æ°çåæ£å¼¦ï¼ arcsin(z) ï¼ (彿°æ¨¡æ¿) |
| (C++11) |
计ç®å¤æ°çåä½å¼¦ï¼ arccos(z) ï¼ (彿°æ¨¡æ¿) |
| (C++11) |
计ç®å¤æ°ç忣åï¼ arctan(z) ï¼ (彿°æ¨¡æ¿) |
忲彿° | |
| 计ç®å¤æ°çåæ²æ£å¼¦ï¼ sinh(z) ï¼ (彿°æ¨¡æ¿) | |
| 计ç®å¤æ°çåæ²ä½å¼¦ï¼ cosh(z) ï¼ (彿°æ¨¡æ¿) | |
| 计ç®å¤æ°çåæ²æ£åï¼ tanh(z) ï¼ (彿°æ¨¡æ¿) | |
| (C++11) |
计ç®å¤æ°çååæ²æ£å¼¦ï¼ arsinh(z) ï¼ (彿°æ¨¡æ¿) |
| (C++11) |
计ç®å¤æ°çååæ²ä½å¼¦ï¼ arcosh(z) ï¼ (彿°æ¨¡æ¿) |
| (C++11) |
计ç®å¤æ°çååæ²æ£åï¼ 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>&);  // 夿°åé¢éï¼ 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&); template<class X> constexpr 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>&); Â };
std::complex ç¹å
template<> class complex<float> { public: typedef float value_type; Â constexpr complex(float re = 0.0f, float im = 0.0f); explicit constexpr complex(const complex<double>&); explicit constexpr complex(const complex<long double>&); Â constexpr float real() const; constexpr void real(float); constexpr float imag() const; constexpr void imag(float); Â constexpr complex<float>& operator= (float); constexpr complex<float>& operator+=(float); constexpr complex<float>& operator-=(float); constexpr complex<float>& operator*=(float); constexpr complex<float>& operator/=(float); Â constexpr complex<float>& operator=(const complex<float>&); template<class X> constexpr complex<float>& operator= (const complex<X>&); template<class X> constexpr complex<float>& operator+=(const complex<X>&); template<class X> constexpr complex<float>& operator-=(const complex<X>&); template<class X> constexpr complex<float>& operator*=(const complex<X>&); template<class X> constexpr complex<float>& operator/=(const complex<X>&); }; Â template<> class complex<double> { public: typedef double value_type; Â constexpr complex(double re = 0.0, double im = 0.0); constexpr complex(const complex<float>&); explicit constexpr complex(const complex<long double>&); Â constexpr double real() const; constexpr void real(double); constexpr double imag() const; constexpr void imag(double); Â constexpr complex<double>& operator= (double); constexpr complex<double>& operator+=(double); constexpr complex<double>& operator-=(double); constexpr complex<double>& operator*=(double); constexpr complex<double>& operator/=(double); Â constexpr complex<double>& operator=(const complex<double>&); template<class X> constexpr complex<double>& operator= (const complex<X>&); template<class X> constexpr complex<double>& operator+=(const complex<X>&); template<class X> constexpr complex<double>& operator-=(const complex<X>&); template<class X> constexpr complex<double>& operator*=(const complex<X>&); template<class X> constexpr complex<double>& operator/=(const complex<X>&); }; Â template<> class complex<long double> { public: typedef long double value_type; Â constexpr complex(long double re = 0.0L, long double im = 0.0L); constexpr complex(const complex<float>&); constexpr complex(const complex<double>&); Â constexpr long double real() const; constexpr void real(long double); constexpr long double imag() const; constexpr void imag(long double); Â constexpr complex<long double>& operator=(const complex<long double>&); constexpr complex<long double>& operator= (long double); constexpr complex<long double>& operator+=(long double); constexpr complex<long double>& operator-=(long double); constexpr complex<long double>& operator*=(long double); constexpr complex<long double>& operator/=(long double); Â template<class X> constexpr complex<long double>& operator= (const complex<X>&); template<class X> constexpr complex<long double>& operator+=(const complex<X>&); template<class X> constexpr complex<long double>& operator-=(const complex<X>&); template<class X> constexpr complex<long double>& operator*=(const complex<X>&); template<class X> constexpr complex<long double>& operator/=(const complex<X>&); Â };