¿Es una buena idea modelar otras estructuras de datos después de STD :: Vector?

¿Es una buena idea hacerlo, con respecto a la cantidad de memoria que tienen los sistemas modernos?

Tal vez. Dependiendo de sus requerimientos. Solía ​​trabajar en una gran empresa donde solo se recomienda la matriz . La razón es que el cálculo es tan grande que un algoritmo durará más de varios minutos.
Sí. Los sistemas modernos son mucho más rápidos que los antiguos. Pero el cálculo también es mucho más grande de lo que solía ser. Y en algunos dispositivos , como Android o iOS, la memoria sigue siendo limitada .

en C ++, ¿hay alguna forma para que un codificador dicte la jerarquía de la arquitectura de memoria donde se almacenan los datos para maximizar la velocidad del código?

Este es un problema mayor que el anterior. Algunos libros como “rendimiento del software” pueden incluir estos temas. Pero es demasiado grande para ser explicado en esta respuesta.
Hasta ahora solo necesita conocer algunos detalles sobre la administración de memoria entre diferentes estructuras de datos. Existen muchos métodos para mejorar el rendimiento de sus códigos.

La continuidad tiene más que ver con la coherencia de caché y tal vez obviando la necesidad de una desreferencia adicional por elemento que cantidades de memoria.

Debería pensar más en términos de las complejidades big-O y elegir . No es del todo cierto que un vector siempre supere a una lista, o que una lista siempre supere a un vector, depende de para qué lo esté utilizando. ¿Mucha adición o eliminación de elementos a mitad de la colección? ¿No puede permitirse el hipo impredecible cuando los vectores se reescalan? Elige una lista. Y así.

Si eso no tiene sentido para usted, quizás sea demasiado pronto para preocuparse por eso. La corrección es más importante que la velocidad. A menudo la diferencia no importa. En términos generales, sin embargo,

  • Elegiría el vector como mi contenedor predeterminado, en lugar de la lista, y esperaría obtener un mejor rendimiento, pero no siempre.
  • Probablemente pueda escribir su algoritmo usando plantillas y / o iteradores para operar en el contenedor de manera independiente del diseño de almacenamiento.

More Interesting

¿Por qué las funciones recursivas son tan difíciles de entender?

¿Cuáles son los algoritmos de vanguardia para las características de textura eficientes para la recuperación de imágenes?

¿Cuál es el método más fácil para eliminar el último elemento de una matriz numpy 2D?

¿Qué métodos matemáticos se utilizan para rastrear el efecto de mercado de los algoritmos comerciales de alta frecuencia?

¿Por qué el valor de matriz no se incrementa cuando intento rotarlo?

Si un gráfico G contiene un puente, e, ¿es posible construir un árbol de expansión que no incluya este borde?

¿Se utilizan las señales sociales en los algoritmos de clasificación de motores de búsqueda?

¿Conoces alguna biblioteca de diario E2PROM que pueda usarse en controladores de 8 bits o al menos un algoritmo para hacerlo?

¿Algún algoritmo de aprendizaje profundo quedará obsoleto algún día con los algoritmos tradicionales? ¿O los algoritmos de aprendizaje profundo solo son adecuados para problemas específicos?

Cómo imprimir rutas en forma DFS en gráficos

¿Por qué mi profesor sugiere que usemos bucles en lugar de recurrencia en el código de producción?

Además de la programación competitiva, ¿cómo aprender algoritmos?

¿Cuál es la diferencia entre programación dinámica y programación lineal?

En programación, ¿un generador de números aleatorios es realmente aleatorio? ¿O son los números aleatorios generados por un algoritmo oculto?

¿Cómo se copia el contenido de un árbol de búsqueda binario que tiene emparejamientos K, V?