c++ - 没有初始化的 OMP for 循环
问题描述
我正在尝试使用 openmp 运行代码片段,但由于for
循环中没有初始化,它会产生编译错误。迭代器在这里class
定义。我无法弄清楚如何在循环内进行初始化。for
我不是 C++ 专家,因此我将不胜感激。
ntHashIterator itr(seq, h, k);
#pragma omp parallel for
for(; itr != itr.end(); ++itr){
std::cout << (*itr)[0] << std::endl;
}
解决方案
OpenMP 要求循环采用所谓的规范循环形式。此外,它可以与迭代器一起使用,但它们必须是随机访问迭代器类型。这似乎不是你的情况,因为你nHashIterator
不支持+
和+=
运营商。有关更多详细信息,请参阅 OpenMP 规范。
无论如何,很难说更多,因为您没有提供足够的详细信息,例如它支持的编译器和 OpenMP 版本。
推荐阅读
- unity3d - 我想做一个统一的P2P联网(考虑用镜像)游戏,没有专用服务器,类似于泰拉瑞亚和瓦尔海姆
- python - 无法弄清楚如何为 Django 中的 psycopg2.errors.NotNullViolation 正确“断言”
- gradle - Gradle 通过插件添加对另一个源集的依赖
- sass - sass 迁移器问题 - 绝对路径和 node_modules
- c++ - 柯南:聚合多个包以独立使用
- arm-template - azure arm 模板在部署期间安装 2 个自定义应用程序......但只有 1 个应用程序正在安装
- reactjs - 通过数组和 API 调用进行异步映射时如何在 React 中设置状态
- java - Java 服务器证书链与 SNI 字段无关
- react-native - 如果我将 alignItems 赋予其容器,为什么 Map 不可见?
- iteration - 在 Julia 中使用迭代时努力改变给定矩阵的值