En las preguntas que requieren el uso de estructuras de datos, ¿debemos usar STL o debemos definir la estructura de datos requerida manualmente? ¿Cual es mejor?

Ventajas de elegir STL

Las STL son mejores en comparación con la definición manual de una estructura de datos. Sin embargo, elegir un STL depende de muchos factores,

  1. Dependencia de plataforma / compiladores: ¿qué compilador se ejecuta en qué sistema operativo de manera eficiente?
  2. Características requeridas: ecuaciones diferenciales, álgebra lineal … STL tiene una amplia gama.
  3. Optimización: ¿debemos optimizar el código para una aplicación específica?
  4. Gestión de memoria para programadores.

STL ofrece polimorfismo en tiempo de compilación y la idea principal detrás de STL es la programación genérica y la abstracción para que pueda manejar tipos de datos específicos del usuario. Los algoritmos y los contenedores están separados implica que STL está más simplificado.

Inconvenientes del uso de STL

También hay inconvenientes en el uso de STL.

  1. Por lo general, las funciones de la biblioteca no tienen errores, pero a veces los códigos de error complejos dificultan la depuración
  2. A veces es muy difícil implementar algunas características como iteradores, etc.
  3. Problemas de administración de memoria con contenedores STL que contienen datos.
  4. El uso extensivo de plantillas puede ralentizar la aplicación.

Problema al escribir la estructura de datos manualmente

Cuando escribe su propia estructura de datos, tiene que escribir cada uno usted mismo y es posible que no obtenga el beneficio de una biblioteca estandarizada.

¿Eres un estudiante que está aprendiendo estructuras de datos y algoritmos? ¿O te estás preparando para las entrevistas? Si la respuesta es y no conoce los detalles de implementación del DS que va a utilizar, le sugiero que lo implemente por su cuenta. Como primer paso, debe conocer tantos detalles sobre el DS como pueda adquirir. Aunque durante las entrevistas (al menos en compañías como Amazon, Microsoft), puede usar STL hasta cierto punto, pero esta práctica le dará confianza para responder cualquier pregunta relacionada con el DS que está utilizando.

Pero, si usted es un desarrollador, debe usar STL ya que proporcionan la implementación más optimizada. Sin embargo, debe conocer los detalles internos de implementación.

Bien, déjame decirte esto primero.

¡Depende de dónde lo estés usando!

Si se trata de una pregunta en un concurso o entrevista de codificación competitiva o algo similar, continúe con “ USE” STL, en estos casos le dan una ventaja , puede terminar más rápido.

Si es una pregunta en tu universidad, entonces ” NO LO USES” porque, ¡tienes que aprender !

Cuando estaba en la universidad, me pidieron que no usara STL en mis clases de laboratorio, ya que la facultad me dijo que “necesitaba aprender cómo usar las estructuras de datos escribiendo todo el código y no usando STL”. Dicho esto era correcto , después de todo, ¿cuál es el punto de usar STL si no sabes lo que está sucediendo dentro?

Te sugiero que no uses STL en los terrenos de aprendizaje y que los uses en terrenos competitivos.

¡Todo lo mejor, y sigan aprendiendo! 🙂

Gracias por A2A

Mi sugerencia es usar STL porque, por defecto, las bibliotecas requieren menos tiempo de compilación.

También reduce la línea de código.

Aunque también depende de otros factores como la plataforma, las operaciones requieren, etc.

Si es necesario cambiar las operaciones del tipo de datos abstractos / estructura de datos, entonces el código manual es mejor.

En el caso de concursos cortos, si puede usar STL siempre debe usar STL, ya que le ahorrará tiempo y velocidad es muy importante durante concursos cortos.

Sin embargo, para Long Contest, donde el tiempo no es una restricción, si desea revisar el esqueleto de la estructura de datos, vaya a implementarlo.

Siempre use STL donde sea necesario, sin embargo, si tiene la confianza suficiente para reducir la complejidad con su propia estructura, entonces es una buena idea.