首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用for_each标准或boost工具优化循环

使用for_each标准或boost工具优化循环
EN

Stack Overflow用户
提问于 2014-11-20 11:04:58
回答 1查看 64关注 0票数 0

我试图优化下面的循环。它对std::struct类型的向量执行for循环。然后检查类型是否等于"INSIDE_WITH_MORE_ONE_INTER“的任何成员。如果它找到了这样的成员,它就会在上面应用一个函数,最后根据结果,它可以将它的类型更改为"NOT_DEFINED“。

代码语言:javascript
复制
for(pnt_vec_iter pnt_iter = newpnTs.begin(); pnt_iter != newpnTs.end(); pnt_iter++)
  {
    if(pnt_iter->_type == INSIDE_WITH_MORE_ONE_INTER)
    {
      if(!DoublePointsOnEdgeCheck(*this, pnt_iter->_face, pnt_iter))
      {
        pnt_iter->_type == NOT_DEFINED;
      }
    }
  }

我想知道是否有可能优化上述代码,不包括定义函数

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-20 11:29:13

这在很大程度上取决于上下文,比如

  • 来自DoublePointsOnEdgeCheck的数据依赖关系的引用的局部性是什么?
  • _type==ISIDE_WITH_MORE_ONE_INTER点的相对频率是多少?这些点是如何排列的?
  • 一个点的内存布局是什么?等。

只需分析一下它,/设想/是什么使算法更快地在集合中拉链。

例如。

  • “如果我不需要遍历所有的点呢?”
  • “如果点已经按_type索引/排序了呢?”(您可以使用一个简单的equal_range(INSIDE_WITH_MORE_ONE_INTER)调用来减少工作量)
  • 如果我根本不做的工作,而是懒洋洋地重新评估访问器type()_type的值,会怎么样?“(或者这会破坏稳定吗?线程化?)

等。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27038018

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档