Je voudrais utiliser std :: copie pour insérer des éléments dans une file d'attente comme ceci:Insérez dans une file d'attente STL en utilisant 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()));
Mais cela ne parvient pas à compiler, se plaignant que « commencer » n'est pas membre de 'std :: queue'.
Remarque: Je l'ai également essayé avec std::inserter
- cela a également échoué, cette fois en disant que 'reference' n'est pas membre de 'std :: queue'. std::back_inserter
et std::back_insert_iterator
échouent également avec la même erreur.
Ai-je quelque chose d'évident, ou est-ce que insert_iterator
ne fonctionne pas avec les files d'attente?
Bien que les réponses que vous avez été donné sont bons, personnellement, je voudrais juste éviter std :: file d'attente et tout autre adaptateur contenant estropié. – Kylotan
Oui, la suggestion de sbi et Naveen d'utiliser une deque serait une bonne alternative. –