Я хотел бы использовать std::copy для вставки элементов в очередь следующим образом:
vector<int> v;
v.push_back( 1 );
v.push_back( 2 );
queue<int> q;
copy( v.begin(), v.end(), insert_iterator< queue<int> >( q, q.front() ) );
Но это не компилируется, жалуясь, что begin не является членом std::queue.
Примечание: я тоже попробовал это с std::inserter - это тоже не удалось, на этот раз я сказал, что 'reference' не является членом 'std::queue'. std::back_inserter и std::back_insert_iterator также завершаются с той же ошибкой.
Я что-то упускаю из виду, или insert_iterator просто не работает с очередями?