问题标签 [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.

0 投票
3 回答
1590 浏览

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),但它不起作用。

0 投票
2 回答
479 浏览

c++ - valarray 划分它的元素

当我将 valarray 除以其第一个元素时,只有第一个元素变为 1,其他元素保持其原始值。

实际输出为:

预期的输出是:

为什么实际输出不如预期?

我使用 g++(4.8.1) 和 -std=c++11

0 投票
0 回答
251 浏览

c++ - 将不同类型的 valarray 相乘

我很惊讶,如果一个是double类型,第二个是int,则不可能将两个valarray相乘。

这是为什么?

编译器错误:

g++msvc++编译器都是一样的。

0 投票
1 回答
872 浏览

c++ - 使用标准库切片

标准库中是否有允许我对 a 进行切片的功能,std::slice或者我是否需要编写类似的东西

我自己?

0 投票
1 回答
1855 浏览

c++ - C/C++ 中两个数组的元素乘法

我想执行两个数组的元素乘法,两者都是复杂类型,但我收到以下错误消息:

返回错误的函数:

fft 和 ifft 在这里:

这是我的主要功能:

0 投票
1 回答
560 浏览

c++ - 错误:没有用于调用“conj(CArray&)”的匹配函数

我收到错误消息:

尝试在我的程序中运行以下函数时:

我想这可能与conj参数类型有关,但我可以弄清楚如何解决它。感谢您的帮助,并随时要求我澄清任何事情。

0 投票
1 回答
452 浏览

c++ - 无法将参数 1 从“float *”转换为“CArray &”

我正在尝试将 FFT(FFT的 this rosettacode.org C++ 实现void fft(CArray &x) { ... },还是我应该使用C 实现?)应用于此数据给出的数组:

当我做:

我得到:

如何解决这种错误?


0 投票
1 回答
1343 浏览

c++ - 处理实数和复数数组

我正在处理一个复数数组a和一个实数数组b(作为双精度数)。

我遇到了两个问题(这里是现场可运行的演示):

  1. 出于内存管理的目的,由于绝对值(或“模数”)是实数,因此应该可以将其存储为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如何存储modulusstd::valarray<double>?

  2. 应该可以将结果乘以a并将b结果存储为复数数组。但是有这个错误:no match for 'operator*' (operand types are 'std::valarray<std::complex<double> >' and 'std::valarray<double>')如何正确地进行数组的这种乘法?

0 投票
3 回答
650 浏览

c++ - C ++中复数的Valarray中的最高元素(最高实部)

如何在 C++ 中打印出复数 Valarray 的最高元素?

我已尝试使用此代码,但它返回错误消息

输出:

我做错了什么?

第二版代码我修改了一些代码,现在我想获取与我的 Valarray 的最高元素相对应的所有索引,在我的情况下,所有索引对应于元素 {9,0}

注意:“最高元素”是指具有最高实部的元素

新代码:

我收到以下错误:输出:

0 投票
2 回答
1652 浏览

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工作或一些接近妥协?