gpt4 book ai didi

c++ - 对 vector 的 vector 的每个元素求平方的最省时的方法是什么 C++

转载 作者:行者123 更新时间:2023-11-28 02:24:48 26 4
gpt4 key购买 nike

我目前有一个浮点类型的 vector vector ,其中包含一些数据:

 vector<vector<float> > v1;
vector<vector<float> > v2;

我想知道对 v1 中的每个元素进行平方并将其存储在 v2 中的快速方法是什么?目前我只是访问 v1 的每个元素,将其乘以自身并将其存储在 v2 中。如下所示:

 for(int i = 0; i < 10; i++){
for(int j = 0; j < 10; j++){
v2[i][j] = v1[i][j]*v[i][j];
}
}

最佳答案

幸运的是,您正在使用的编译器了解您想要做什么并将其转换,因此它使用 cpu 的 sse 指令并行进行平方运算。在这种情况下,您的代码接近最佳速度(在单核上)。您也可以尝试 eigen-library ( http://eigen.tuxfamily.org/ ),它提供了一些更可靠的方法来实现高性能。然后你会得到类似的东西

ArrayXXf v1 = ArrayXXf::Random(10, 10);
ArrayXXf v2 = v1.square();

这也让你的意图更加明确。

关于c++ - 对 vector 的 vector 的每个元素求平方的最省时的方法是什么 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31100456/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com