提问人:MA19 提问时间:2/10/2021 更新时间:2/11/2021 访问量:287
在 c++ 中使用 <execution> 标头的问题
Problem with using header of <execution> in c++
问:
我在 Windows 10.2.0 上有 gcc 10。因此,在最新版本的 GCC 中实现。
问题是当我从以下链接复制示例代码时:https://docs.w3cub.com/cpp/algorithm/reduce,它说:std::execution 尚未声明。有什么想法吗?
#include <iostream>
#include <chrono>
#include <vector>
#include <numeric>
#include <execution>
int main()
{
std::vector<double> v(10'000'007, 0.5);
{
auto t1 = std::chrono::high_resolution_clock::now();
double result = std::accumulate(v.begin(), v.end(), 0.0);
auto t2 = std::chrono::high_resolution_clock::now();
std::chrono::duration<double, std::milli> ms = t2 - t1;
std::cout << std::fixed << "std::accumulate result " << result
<< " took " << ms.count() << " ms\n";
}
{
auto t1 = std::chrono::high_resolution_clock::now();
double result = std::reduce(std::execution::par, v.begin(), v.end());
auto t2 = std::chrono::high_resolution_clock::now();
std::chrono::duration<double, std::milli> ms = t2 - t1;
std::cout << "std::reduce result "
<< result << " took " << ms.count() << " ms\n";
}
}
答:
0赞
Mooing Duck
2/11/2021
#1
许多编译器默认使用较旧的 C++ 模式以实现向后兼容性。在设置中启用 C++ 17 以使用较新的功能。
上一个:代码提供所需的输出,但继续运行
评论