正在初始化std::complex
Initializing std::complex
我在网上看到了几个例子,这些例子表明std::复杂变量可以通过以下方式初始化:
std::complex<float> val(10, -2);
但是,有没有这样的方法:
std::complex<float> val;
val.real = 10;
val.imag = -2;
std::complex::real
和std::complex::imag
是实际函数。它们可以用于返回实部/虚部以及设置它们,但仍然通过提供值作为参数来使用函数调用语法:
std::complex<float> val;
val.real(10);
val.imag(-2);
但是,这并不称为初始化。这将更改val
的值,该值已在代码的第一行中初始化为零。
实际上,您可以看到相同的结果(在该代码之后,val
具有您期望的值),但需要更多的指令,除非编译器可以对此进行优化。由于std::complex
是一种标准类型,编译器很可能会这样做,但你永远无法确定这一点。
相关文章:
- <T> 通过模板化运算符重载将 std::complex 乘以双倍
- Cxx.jl 在 Julia Complex 和 std::complex 之间进行转换
- 仅当类型为 std::complex 时,才进行缩放
- std::complex<> in C++ 数学特殊函数:技术规范或提案
- 在 boost::<double>asio::buffer 中使用像 std::vector<std::complex> 这样的参数
- 将分配的内存与基本数据类型一起使用时,是否需要新放置? std::complex?
- (如何)我可以使用openmp矢量化"std::complex<double>"吗?
- 将 int 转换为双精度以执行 std::complex <double>的"*"操作
- _Complex 和 std::complex 之间的 C/C++ 互操作
- 优化两个 std::vector<std::complex> 的元素乘积,使用 <float>fftw_malloc() 分配
- 英特尔 ICPC 和 C++14:如何构建 std::complex
- C99 中的_Complex类型在 C++ 中的行为是否类似于 std::complex<>?
- 可以使用 memset 来填充 std::complex<float>s 数组吗?
- 我越来越"invalid conversion from `void*` to `std::complex<double>*"
- 在C++中使用 std::complex 创建复数无穷大<T>
- 重载标准运算符<<对于 std::complex
- 使用 std::complex <double>时使用 GCC4.9.1 的段错误
- C++ NAN、INF(非收敛)的 std::complex<> 数据类型测试
- 使用 std::complex<double> 作为 std::map 键
- 用SWIG包裹一个4维标准::向量 std::complex。<float>