Warum gibt std :: queue :: pop keinen Wert zurück?

Ich habe das durchgemachtSeite aber ich bin nicht in der Lage, den Grund dafür zu finden. Dort wird das erwähnt

"Es ist sinnvoller, überhaupt keinen Wert zurückzugeben und von Clients zu verlangen, dass sie front () verwenden, um den Wert an der Vorderseite der Warteschlange zu überprüfen."

Wenn Sie jedoch ein Element von front () aus untersuchen, muss dieses Element auch in lvalue kopiert werden. Zum Beispiel in diesem Codesegment

std::queue<int> myqueue;
int myint;
int result;
std::cin >> myint;
myqueue.push (myint);

/ * hier wird temporär auf RHS erstellt, das dem Ergebnis zugewiesen wird, und falls die Rückgabe per Referenz erfolgt, wird das Ergebnis nach der Pop-Operation ungültig. * /

result = myqueue.front();  //result.
std::cout << ' ' << result;
myqueue.pop();

in der fünften Zeilecout object erstellt zuerst eine Kopie von myqueue.front () und weist diese dann dem Ergebnis zu. Also, was ist der Unterschied, könnte Pop-Funktion das gleiche getan haben.

Antworten auf die Frage(7)

Ihre Antwort auf die Frage