Insérer dans une file d'attente STL en utilisant std::copy

Je voudrais utiliser std::copy l'insertion d'éléments dans une file d'attente comme ceci:

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() ) );

Mais cela ne parvient pas à compiler, à se plaindre que begin n'est pas un membre de std::queue.

Note: j'ai essayé avec std::inserter trop d'échec de cette procédure, cette fois en disant que "référence" n'est pas un membre de 'std::file d'attente'. std::back_inserter et std::back_insert_iterator aussi échouer avec le même message d'erreur.

Ai-je raté quelque chose d'évident, ou ne insert_iterators tout simplement pas travailler avec les files d'attente?

Bien que les réponses que vous avez été donné à sont bien, personnellement, je voudrais juste éviter de std::file d'attente et tous les autres paralysé adaptateur de conteneur.
Oui, sbi et Naveen la suggestion d'utiliser un deque serait une bonne alternative.

OriginalL'auteur Andy Balaam | 2009-11-12