Ich möchte std :: Kopie verwenden Elemente in eine Warteschlange wie folgt einzufügen:Legen Sie in eine STL Warteschlange std :: kopieren
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()));
Aber dies nicht zu kompilieren, beschweren, dass ‚begin‘ ist kein Mitglied von 'std :: queue'.
Hinweis: Ich habe es mit std::inserter
auch versucht - dies ist auch fehlgeschlagen, dieses Mal sagen, dass "Referenz" kein Mitglied von "std :: queue" ist. std::back_inserter
und std::back_insert_iterator
schlagen ebenfalls mit demselben Fehler fehl.
Fehle ich etwas offensichtliches, oder funktioniert insert_iterator
s einfach nicht mit Warteschlangen?
Obwohl die Antworten, die Sie bekommen haben, sind gut, ich persönlich würde nur std :: Warteschlange und andere verkrüppelte Behälteradapter vermeiden. – Kylotan
Ja, sbi und Naveens Vorschlag, eine Deque zu verwenden, wäre eine gute Alternative. –