異なるスレッドで処理する必要がある巨大なベクトルがあるため、同じデータで N 個の異なるベクトルを作成する代わりに、イテレータを使用することを考えました。コードはなんとかできましたが、短縮または改善できる可能性があるようです。
Iterator begin = vec.begin();
Iterator end;
Iterator endOfVector = vec.end();
while(end != endOfVector){
end = begin;
advance(end, elementsPerThread);
if (end > endOfVector){
end = endOfVector;
}
iteratorPairs.push_back( std::make_pair(begin, end) );
begin = end;
}
私は C++/Qt プログラミングにかなり慣れていますが、std:: に関しては、まだまだ学ぶべきことがたくさんあると感じています。:)