Contenedores: 8.50 6.50 5.3 7.3 9.1 nota[0] nota[1] nota[2] nota[18] nota[19]

Contenedores Un contenedor es un objeto que almacena una colección de otros objetos, sus elementos. Los contenedores est

Views 141 Downloads 0 File size 293KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

Contenedores Un contenedor es un objeto que almacena una colección de otros objetos, sus elementos. Los contenedores están implementados en clases lo que brinda gran flexibilidad en los tipos de elementos que pueden almacenar. Un contenedor administra el espacio para almacenar sus elementos y tiene un conjunto de funciones para acceder a ellos, ya sea directamente o a través de iteradores. Los contenedores replican las estructuras más comunes que se usan al programar: arreglos dinámicos (vectores), colas (queues), pilas (stacks), listas (list), etc. Muchos contenedores tienen varias funciones en común y comparten su funcionalidad. La decisión del tipo de contenedor que se usa no depende solamente de su funcionalidad sino también de su eficiencia en una aplicación específica que, por lo general, se determina por la complejidad en insertar, remover y acceder a sus elementos. A continuación se presentan los siguientes contenedores: array, vector, list, stack, queue, priority_queue. Arreglos (Array) Un array es una colección finita de datos del mismo tipo, que se almacenan en posiciones consecutivas de memoria y reciben un nombre común. Ejemplo de array: Supongamos que queremos guardar las notas de los 20 alumnos de una clase. Para ello utilizaremos un array de 20 elementos y en cada elemento almacenaremos una nota. Se puede representar gráficamente el array de notas de la siguiente forma: Array notas: Nota del alumno 1

Nota del alumno 2

Nota del alumno 3

Nota del alumno 19

Nota del alumno 20

8.50 nota[0]

6.50 nota[1]

5.3 nota[2]

7.3 nota[18]

9.1 nota[19]

Para acceder a cada elemento del array se utiliza el nombre del array y uno o más índices que indican la posición que ocupa el elemento dentro del array. Cada índice se escribe entre corchetes. El primer elemento del array ocupa la posición 0, el segundo la posición 1, etc. En un array de N elementos el último ocupará la posición N-1. En el ejemplo anterior, notas[0] contiene la nota del primer alumno y notas[19] contiene la del último Declaración de un array: Un array se declara de forma parecida a una variable de tipo simple añadiéndole al nombre el número de elementos que contendrá el array. De forma general, un array se declara así:

tipo_dato nombre_array[elementos1][elementos2]…..; elementos1, elementos2, etc. son los índices del array. Deben ser números enteros positivos o expresiones con un resultado entero positivo. Indican el número de elementos del array. En el ejemplo anterior, el array notas se declara como: double notas[20]; El array es unidimensional, se llama notas y contiene 20 elementos de tipo double. Más ejemplos de declaración de arrays: int ventas[10] ; //array llamado ventas que contiene 10 enteros double grados[20]; //array grados que contiene 20 elementos de tipo double float precios[30]; //array llamado precios que contiene 30 elementos de tipo float El número de índices determina la dimensión del array. Si el array tiene solo un índice es un array de una dimensión o unidimensional (también llamado vector), si tiene dos índices es un array de dos dimensiones o bidimensional (también llamados matrices o tablas), si tienen tres índices tridimensional, etc. Para facilitar la modificación del programa, el tamaño del array se puede declarar utilizando una constante en lugar de una cantidad entera. Esto hace más fácil modificar el programa ya que todas las referencias al tamaño máximo del array pueden ser modificadas cambiando el valor de la constante. Por ejemplo, declaración de 4 arrays A, B, C y D de 10 elementos cada uno de tipo double usando una constante llamada ELEMENTOS: const int ELEMENTOS = 10; double A[ELEMENTOS], B[ELEMENTOS], C[ELEMENTOS], D[ELEMENTOS]; En este caso si se modifica el tamaño de los arrays, solo habrá que cambiar el valor de la constante. La declaración de un array puede incluir la asignación de valores iniciales. La forma general de hacerlo es: tipo nombre_array[tamaño]={valor1,valor2,..,valorn}; Donde valor1 es el valor del primer elemento del array, valor2 el valor del segundo elemento, y así sucesivamente. El tamaño del array es opcional cuando se asignan valores iniciales en la declaración.

Todos los elementos del array que no tienen asignados valores iniciales explícitos, (sucede cuando un array tienes más elementos que valores iniciales se han asignado), serán puestos automáticamente a cero. Ejemplos de asignación de valores iniciales en la declaración de un array en C++: double porcentaje[]={0, 0.3, 7.25, 4.2}; Se declara un array unidimensional llamado porcentaje que contiene 4 elementos de tipo double. El número de elementos no es necesario indicarlo porque se están asignando 4 valores iniciales. El compilador asume que el array tiene 4 elementos. int numeros[5]= {1,4,-7,5,9}; Se declara un array unidimensional llamado números que contiene 5 elementos de tipo int. Se indica el número de elementos aunque no es necesario hacerlo. Se están asignando 5 valores iniciales. El compilador asume que el array tiene 5 elementos. int digitos[8]= {3,4,2,7}; Se declara un array unidimensional llamado dígitos que contiene 8 elementos de tipo int. Aquí sí es necesario indicar el número de elementos del array porque solo se le asignan valores iniciales a los cuatro primeros. El compilador asumiría que el array tiene solo 4 elementos. En este caso los cuatro últimos elementos del array que no reciben valores iniciales, toman el valor 0. digitos[0]=3, digitos[1]=4, digitos[2]=2, digitos[3]=7, digitos[4]=0, digitos[5]=0, digitos[6]=0, digitos[7]=0 Ejemplo 1: programa C++ que accede y modifica los elementos de un array. Los elementos de un array se pueden utilizar igual que cualquier otra variable y se puede hacer con ellos las mismas operaciones que se pueden hacer con el resto de variables. #include using namespace std; int main () { int n, m = 5; int a[]={2,8,3,0,4}; //se declara un array de 5 elementos de tipo //int con esos valores iniciales n = a[0]; //n = 2 a[0]=a[1]+a[2]; //a[0]= 8 + 3 = 11 a[1]++; //a[1]= 9 a[n]=m+10; //a[2]= 15 a[n+1]=7; //a[3]= 7 if(a[0]>=a[1]) //if(11 >= 9) a[4]=a[0]; // a[4]= 11 cout