C++ boost::bind与for循环的性能分析
我皈依了C++ boost::bind与for循环的性能分析,c++,boost,C++,Boost,我皈依了 for(std::set<shape::Face>::iterator face_iter=vec_face.begin(); face_iter!=vec_face.end(); face_iter++) { hiddenCorner(other, bmap, *face_iter); } 显然,它没有那么冗长,但效率如何 hiddenCorner是一个更新bmap的void函数(bmap是一个std::map) 注意:vec_face不是一个
for(std::set<shape::Face>::iterator face_iter=vec_face.begin(); face_iter!=vec_face.end(); face_iter++)
{
hiddenCorner(other, bmap, *face_iter);
}
显然,它没有那么冗长,但效率如何
hiddenCorner是一个更新bmap的void函数(bmap是一个std::map)
注意:vec_face不是一个真正的大尺寸套件
hiddenCorner是一个更新bmap的void函数(bmap是一个std::map)
bind
版本复制存储在活页夹中的other
和bmap
,然后将它们传递给函数,因此函数更新活页夹中的副本,而不是bmap
本身
所以很明显,你不仅没有尝试自己测量性能,你甚至没有测试它是否有效。没有饼干给你
如果您使用boost::ref
正确编写它,假设您启用了优化,那么它的性能应该大致相当
hiddenCorner是一个更新bmap的void函数(bmap是一个std::map)
bind
版本复制存储在活页夹中的other
和bmap
,然后将它们传递给函数,因此函数更新活页夹中的副本,而不是bmap
本身
所以很明显,你不仅没有尝试自己测量性能,你甚至没有测试它是否有效。没有饼干给你
如果您使用
boost::ref
正确编写它,假设您启用了优化,它的性能应该大致相当。为什么不测量它并找出答案?为什么不测量它并找出答案?在所有帐户上,+1:)在所有帐户上,+1:)
for_each(vec_face.begin(), vec_face.end(), boost::bind(hiddenCorner, other, bmap, _1));