迭代两个向量迭代器比boost_foreach更快

时间:2012-11-29 02:24:46

标签: c++ boost iterator

出于某种原因,Iterator的执行速度比BOOST FOREACH快得多,同时迭代两个向量...我正在使用visual studio 2012并启用了优化。下面是我将它与...进行比较的两段代码。我错过了什么吗?

typedef boost::tuple<int&, int&> int_ref_tuple;
BOOST_FOREACH(int_ref_tuple tup, boost::combine(v1, v2))
tup.get<0>() = tup.get<1>();

VS

vector<int>::iterator iIter = v1.begin();
vector<int>::const_iterator jIter = v2.begin();
for (;iIter != v1.end();++iIter, ++jIter)
{
         //this is faster
}

1 个答案:

答案 0 :(得分:2)

尝试:

BOOST_FOREACH(int_ref_tuple &tup, boost::combine(v1, v2))