operator<<,>>(std::complex)
来自cppreference.com
                    
                                        
                    
                    
                                                            
                    |   定义于头文件  <complex>
  | 
||
|   template <class T, class CharT, class Traits> std::basic_ostream<CharT, Traits>&   | 
(1) | |
|   template <class T, class CharT, class Traits> std::basic_istream<CharT, Traits>&   | 
(2) | |
1) 以 (real,imaginary) 格式写入复数到 os 。
2) 从 is 读取复数。受支持格式为 
- real
 - (real)
 - (real,imaginary)
 
其中 real 与 imaginary 的输入必须可转换为 T 。
若错误发生则调用 is.setstate(ios_base::failbit)异常
流错误时可能抛 std::ios_base::failure 。
参数
| os | - | 字符输出流 | 
| is | - | 字符输入流 | 
| x | - | 要被插入或释出的复数 | 
返回值
1) os
2) is
注意
1) 因为逗号可能被当前本地环境用作小数点,故输出可能有歧义。这可用强制显示小数点的 std::showpoint 解决。
2) 输入以简单格式化的释出进行。空白符的跳过对于它们每一项都相同。
可能的实现
template<class T, class charT, class traits> basic_ostream<charT, traits>& operator<<(basic_ostream<charT, traits>& o, const complex<T>& x) { basic_ostringstream<charT, traits> s; s.flags(o.flags()); s.imbue(o.getloc()); s.precision(o.precision()); s << '(' << x.real() << "," << x.imag() << ')'; return o << s.str(); }  |