Programación c ++: las operaciones en una lista completa

Algunos programas de C ++ pueden tratar con datos a medida que llega y prescindir de ella. La mayoría de los programas, sin embargo, deben almacenar datos para su posterior procesamiento. Una estructura que se utiliza para almacenar datos es conocido genéricamente como una envase o una colección. (Muchas personas utilizan los términos indistintamente).

programas que comienzan por lo general se basan en gran medida en la matriz de almacenamiento de datos. El recipiente de matriz tiene un par de propiedades bonito: Almacena y recupera las cosas rápidamente. Además, la matriz puede ser declarado para contener cualquier tipo de objeto en una forma de tipo seguro. Sopesarse frente a estas ventajas, sin embargo, son dos grandes aspectos negativos.

En primer lugar, se debe conocer el tamaño de la matriz en el momento de su creación. Este requisito generalmente no es alcanzable, aunque a veces se sabrá que el número de elementos no puede exceder un poco de “gran valor”.

Video: Tutorial Programacion en C nº4 : Operaciones Matematicas

Los virus, sin embargo, comúnmente explotan este tipo de “no puede ser mayor que este” supuesto, que resulta ser incorrecta. No hay forma real de “crecer” un array, excepto para declarar una matriz nueva y copiar el contenido de la matriz de edad en la versión más nueva, más grande.

En segundo lugar, insertar o quitar elementos en cualquier lugar dentro de la matriz contiene elementos de copiado dentro de la matriz. Esto es costoso en términos de memoria y tiempo de cálculo. Clasificación de los elementos dentro de una matriz es aún más caro.

Video: 104. Programación en C++ || Listas || Insertar elementos en una lista enlazada

C ++ ahora viene con la Biblioteca de plantillas estándar, o STL, que incluye muchos tipos diferentes de recipientes, cada uno con su propio conjunto de ventajas (y desventajas).

La Biblioteca de plantillas estándar C ++ es una biblioteca muy grande de contenedores a veces complejas. Esta sesión se considera sólo una visión general de la potencia de la STL.

La biblioteca STL define ciertas operaciones en toda la lista. Por ejemplo, el Lista :: sort () Método dice “Voy a ordenar la lista para usted si sólo me dice que los objetos ir en primer lugar.” Esto se hace mediante la definición operatorlt; (const T&, T const&). Este operador ya está definido para los tipos intrínsecas y muchas clases de biblioteca tales como cuerda. Por ejemplo, usted no tiene que hacer nada para ordenar una lista de números enteros:

lista anota-scores.push_back (10) -scores.push_back (1) -scores.push_back (5) -scores.sort () -

El programador debe definir su propio operador de comparación para sus propias clases si quiere C ++ para ordenarlos. Por ejemplo, el siguiente tipo de comparación Estudiante objetos por su identificación de estudiante:

bool operatorlt; (Estudiante const& s1, Estudiante const& s2) {return s1.ssID lt; s2.ssID-}
Artículos Relacionados