異なる反復で同じキューを使用しているため、キューからポップせずに要素にアクセスするためにstd::dequeat関数を使用しています。私のソリューションは、粗粒度のマルチスレッドに基づいています。今、私はそれをきめ細かいマルチスレッドソリューションにしたいと思いました。そのために、私はtbb::concurrent_queueを使用しています。しかし、tbb::current_queueでの操作時にstd::dequeと同等の関数が必要ですか?
編集 これは私がstd::deque(粗粒度マルチスレッド)で実装している方法ですdqは静的キューであることに注意してください(つまり、異なる反復で何度も使用します)
vertext_found = true;
std::deque<T> dq;
while ( i < dq->size())
{
EnterCriticalSection(&h);
if( i < dq.size() )
{
v = dq.at(i); // accessing element of queue without popping
i++;
vertext_found = true;
}
LeaveCriticalSection(&h);
if (vertext_found && (i < dq.size()) && v != NULL)
{
**operation on 'v'
vertext_found = false;
}
}
tbb :: current_queueで同じ結果を達成したいですか?