Fondo rápido
Soy un desarrollador de Java que ha estado jugando con C++ en mi tiempo libre/aburrido.¿Por qué debería pop() tomar un argumento?
Prefacio
En C++, que suelen aparecer pop teniendo un argumento por referencia:
void pop(Item& removed);
entiendo que es agradable para "rellenar" el parámetro con lo que haya extraído. Eso tiene mucho sentido para mí. De esta manera, la persona que solicitó eliminar el artículo superior puede echar un vistazo a lo que se eliminó.
Sin embargo, si tuviera que hacer esto en Java, que haría algo como esto:
Item pop() throws StackException;
De esta manera, después del estallido volvemos ya sea: NULL como resultado, un artículo, o un se lanzaría una excepción.
Mi libro de texto C++ me muestra el ejemplo anterior, pero veo muchas implementaciones de pila sin argumentos (stl stack por ejemplo).
La pregunta
¿Cómo se debe implementar la función emergente en C++?
La bonificación
¿Por qué?
Enlaces impresionantes, muchas gracias. Entonces, si me preguntan en una entrevista para implementar pop() en C++ ... ¿debería darles su respuesta? : p – Stephano
+ 1 ... pero tal vez "si implementa la función pop en C++, debe seguir la interfaz estándar del contenedor". – Potatoswatter
@Stephano: Depende de lo que el entrevistador quiera. Algunos pueden estar seguros de que saben sobre 'std :: stack' y saben que tiene los métodos' push', 'top', y' pop'. Algunos pueden querer que implementes tu propia pila usando una matriz de longitud fija, solo para ver si puedes hacerlo. – Dan