¿Por qué no presionar / hacer estallar frente al vector?
En C ++, STL, tenemos clase de plantilla<vector>
. Sabemos que es compatibleO(1)
acceso aleatorio y modificación de cola. Mi pregunta es por qué no definimos push_front o pop_front en<vector>
?
Una explicación es que si queremos empujar / hacer estallar el elemento en el frente de un vector, debemos cambiar cada elemento de la matriz en un paso y eso costaríaO(n)
.
Pero creo que ese no es siempre el caso. Considerando que si implementamos<vector>
con matriz circular, podemos lograrO(1)
push / pop desde el frente y la cola del vector, sin perder la capacidad deO(1)
acceso aleatorio. Así que personalmente no puedo pensar en ninguna razón en lugar de solo una pequeña sobrecarga para no implementarpush_front
/pop_front
para<vector>
. ¿Alguna idea?