问题标签 [valarray]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - C ++基于范围的for循环对valarray rvalue不起作用
我想迭代一个临时的 valarray,但它不起作用。这是我的(非工作)代码:
下面是我想要实现的最小工作示例,除了我不想定义像temp_array
.
我的编译器是 g++ 版本 4.8.5(Red Hat 4.8.5-4)。我正在使用 -std=c++0x 标志进行编译。
我尝试了其他语法,例如for (auto&& i : temp_array)
and for (int const & i : temp_array)
,但它不起作用。
c++ - valarray 划分它的元素
当我将 valarray 除以其第一个元素时,只有第一个元素变为 1,其他元素保持其原始值。
实际输出为:
预期的输出是:
为什么实际输出不如预期?
我使用 g++(4.8.1) 和 -std=c++11
c++ - 将不同类型的 valarray 相乘
我很惊讶,如果一个是double类型,第二个是int,则不可能将两个valarray相乘。
这是为什么?
编译器错误:
g++和msvc++编译器都是一样的。
c++ - 使用标准库切片
标准库中是否有允许我对 a 进行切片的功能,std::slice
或者我是否需要编写类似的东西
我自己?
c++ - C/C++ 中两个数组的元素乘法
我想执行两个数组的元素乘法,两者都是复杂类型,但我收到以下错误消息:
返回错误的函数:
fft 和 ifft 在这里:
这是我的主要功能:
c++ - 错误:没有用于调用“conj(CArray&)”的匹配函数
我收到错误消息:
尝试在我的程序中运行以下函数时:
我想这可能与conj参数类型有关,但我可以弄清楚如何解决它。感谢您的帮助,并随时要求我澄清任何事情。
c++ - 无法将参数 1 从“float *”转换为“CArray &”
我正在尝试将 FFT(FFT的 this rosettacode.org C++ 实现: void fft(CArray &x) { ... }
,还是我应该使用C 实现?)应用于此数据给出的数组:
当我做:
我得到:
如何解决这种错误?
c++ - 处理实数和复数数组
我正在处理一个复数数组a
和一个实数数组b
(作为双精度数)。
我遇到了两个问题(这里是现场可运行的演示):
出于内存管理的目的,由于绝对值(或“模数”)是实数,因此应该可以将其存储为
std::valarray<double>
. 但在这里它不起作用:有一个错误conversion from 'std::_Expr<std::_UnClos<std::_Abs, std::_ValArray, std::complex<double> >, std::complex<double> >' to non-scalar type 'std::valarray<double>' requested
。如何存储modulus
为std::valarray<double>
?应该可以将结果乘以
a
并将b
结果存储为复数数组。但是有这个错误:no match for 'operator*' (operand types are 'std::valarray<std::complex<double> >' and 'std::valarray<double>')
。如何正确地进行数组的这种乘法?
c++ - C ++中复数的Valarray中的最高元素(最高实部)
如何在 C++ 中打印出复数 Valarray 的最高元素?
我已尝试使用此代码,但它返回错误消息
输出:
我做错了什么?
第二版代码我修改了一些代码,现在我想获取与我的 Valarray 的最高元素相对应的所有索引,在我的情况下,所有索引对应于元素 {9,0}
注意:“最高元素”是指具有最高实部的元素
新代码:
我收到以下错误:输出:
c++ - 将复数的 valarray 乘以标量
valarray<double>
可以乘以一个标量。但是,当我想乘以 a 的标量时出现错误valarray<complex<double>>
。我想知道是否有办法以一种漂亮的方式做到这一点。这是问题的重现:
生成Error C2784: 'std::complex<_Other> std::operator *(const std::complex<_Other> &,const std::complex<_Other> &)': could not deduce template argument for 'const std::complex<_Other> &' from 'std::vector<std::complex<double>,std::allocator<_Ty>>'
.
所以我尝试构建自己的函数,看看是否可以完成并且以下工作:
但是这个实现会产生非常丑陋的代码,所以我查看了 valarray.h 并找到了 * 重载定义:
我的模板知识非常有限,但是可以扩展这个类吗?这是我的尝试:
导致Error C2039 '*': is not a member of 'std::valarray<std::complex<double>>'
有没有办法让我的第一行代码v1 * 2.0
工作或一些接近妥协?