在C++中实现元素化产品并不困难:
vector<float> a_array;
vector<float> b_array;
vector<float> c_array;
vector<float> dot_array;
....
for(int i=0; i<a_array.size(); i++)
{
float temp;
temp = a_array[i]*b_array[i]*c_array[i];
dot_array[i] = temp;
}
Run Code Online (Sandbox Code Playgroud)
这是一个非常简单的实现,我想知道STL中是否有更高效的算法.谢谢!
Mik*_*our 11
std::transform 可以用来乘以两个向量:
#include <algorithm>
#include <functional>
// Precondition: b.size() >= a.size() && r.size() >= a.size()
std::transform(a.begin(), a.end(), b.begin(), r.begin(), std::multiplies<float>());
Run Code Online (Sandbox Code Playgroud)
没有类似的标准算法具有两个以上的输入序列.
| 归档时间: |
|
| 查看次数: |
7418 次 |
| 最近记录: |