1

何らかの理由で、Iterator は BOOST FOREACH よりもはるかに高速に実行され、2 つのベクトルを反復処理しています...最適化を有効にして Visual Studio 2012 を使用しています。以下は、私が比較した 2 つのコードです...何か不足していますか?

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

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

1 に答える 1

2

試す :

BOOST_FOREACH(int_ref_tuple &tup, boost::combine(v1, v2))
于 2012-12-17T17:28:46.537 に答える