Laboratorio Análisis y Diseño de Algoritmos 2 Biblioteca estándar de templates de C++ Standard Template Library (STL)‏ Motivación Ejemplo: Lista + Iterador.

Slides:



Advertisements
Presentaciones similares
Introducción a C++ Sistemas Operativos
Advertisements

Ejemplo de Programa C++
Unidad 5 Listas Enlazadas Bibliografía: Algoritmos y Estructuras de datos de Aguilar y Martinez. Unidad 9 Autor: Ing Rolando Simon Titiosky.
Listas enlazadas c++ Prof. Franklin Cedeño.
Estructuras de datos y algoritmos
Fundamentos de la Programación Estructurada
Programacion de Computadora Prof. Obadiah Oghoerore.
Prof. Franklin Cedeño. FUNCIONES EN C++ Cuando tratamos de resolver un problema, resulta muy útil utilizar la filosofía de “divide y vencerás”. Esta estrategia.
Implementación de Listas
ESTRUCTURAS DE SECUENCIA
SOBRECARGA DE FUNCIONES
Marzo 2007 Lenguajes Visuales Clase III.
Unidad 3 Punteros.
Tecnología de la Programación Javier Nieves Acedo Standar Template Library (STL)
Oscar Bedoya. Edificio 331, 2º piso, E.I.S.C. Estructuras de datos y algoritmos.
Acciones y funciones Concepto
Tema 7: Polimorfismo Antonio J. Sierra. Índice Introducción. Sobrecarga de métodos. Objetos como parámetros. Paso de argumentos. Devolución de objetos.
CI TEORIA semana 8 Subprogramas o funciones Definición de funciones.
Estructuras dinámicas de datos, TAD Lista, parte 2
Estructuras de Control de Repetición
Unidad I Java y C++ : Similitudes y diferencias
Programa “Coordenadas” Ing. Arturo Díaz Vargas Departamento de Sistemas División de Ciencias Básicas e Ingeniería UNIVERSIDAD AUTONOMA METROPOLITANA.
Técnicas avanzadas de programación Interfaces
Colecciones.
Introducción a la Computación
Semana 5 Subprogramas..
Sección 5-2 Estructuras de Control de Decisión Expresiones Lógicas.
ÁRBOLES BINARIOS DE BÚSQUEDA
Concepto de tupla Las tuplas son estructuras de datos que constan de varios campos que pueden contener datos de tipos distintos. El acceso al contenido.
Archivos.
Vectors (Vectores) Agustin J. González ELO329. Contenidos Qué es un vector? Declaración de Objetos Vectores Inserción y eliminación de items Uso de sub-índices.
TABLAS Definición. El tipo tabla permite definir objetos formados por un conjunto de elementos del mismo tipo. Ejemplos. El tipo tabla se utiliza para.
ESTRUCTURA DE DATOS EN JAVA
Programación de Memoria Compartida
Programación Orientada a Objetos usando CONSTRUCTORES DESTRUCTORES.
Unidad VI Registros (estructuras, uniones y enumeraciones)
ARBOLES ESTRUCTURAS DE DATOS.
ELO3201 Contenedores Biblioteca Estándar de Templates Agustín J. González ELO320 Contenido Contenedores: Vector, List, Deque, Stack, Queue, Priority Queue,
Programación Orientada a Objetos
Clasificación de los TDA
Programación Orientada Objetos
Dinamismo y Contenedores Facultad de Ciencias Exactas y Naturales Universidad de Buenos Aires (C++ Avanzado) Depto. de Computación Algoritmos y Estructuras.
Elementos básicos del lenguaje
Unidad II Introducción a la programación en C++
Patrones de Diseño Carolina Perozo Julio Padrón Anthony Accardi.
Elementos básicos del lenguaje
Estructuras de control Resolución de problemas y algoritmos.
Patrón Iterator Santiago García Sánchez Rebeca Marcos Salcedo Mª Cristina Zapatero Gironda.
Entrada / Salida Streams Archivos Algoritmos y Estructuras de Datos I Departamento de Computación, Facultad de Ciencias Exactas y Naturales, Universidad.
Entrada / Salida Streams Archivos Algoritmos y Estructuras de Datos I Departamento de Computación, Facultad de Ciencias Exactas y Naturales, Universidad.
1 Algunas ideas básicas de C++ Agustín J. González ELO-329.
Conceptos Avanzados de Programación
Registros Prof. Flor Narciso Departamento de Computación Escuela de Ingeniería de Sistemas Facultad de Ingeniería Universidad de Los Andes.
Introducción a la Programación Orientada a Objetos Una clase que modela los atributos y el comportamiento de una colección de objetos, define un tipo de.
1 Algunas ideas básicas de C++ Agustín J. González ELO-329.
1 Algunas ideas básicas de C++ Agustín J. González ELO-329.
INTRODUCCIÓN AL LENGUAJE C++. Instrucciones Temas.
Algoritmo.
Arreglos: Vectores Prof. Flor Narciso Departamento de Computación Escuela de Ingeniería de Sistemas Facultad de Ingeniería Universidad de Los Andes.
Arreglos Ejemplo paso a paso. Planteamiento Como estudiante de ingeniería, quieres usar tus habilidades de programador para llevar un registro de tus.
ARREGLOS O ARRAYS.
Desarrollador Profesional de Juegos Programación III Unidad I Capturar Excepciones.
Lenguaje de Programación II PLAN DE EVALUACIÓN CONTENIDO MODALIDAD DE EVAL. PONDERACIÓN INTRODUCCIÓN BÁSICA AL LENGUAJE DE PROGRAMACIÓN.
1 ListaUna Lista se define como una serie de N elementos E 1, E 2,..., E N, ordenados de manera consecutiva, es decir, el elemento E k (que se denomina.
PROF. RAFAEL MONTENEGRO B. UNELLEZ-APURE Introducci Ó n a los Arreglos (“arrays”) en C++
UNIVERSIDAD DIEGO PORTALES Facultad de Ingeniería Programación Avanzada TIPOS ABSTRACTOS DE DATOS TAD Tema: TIPOS ABSTRACTOS DE DATOS TAD Subtema: LISTAS.
Vectors (Vectores)‏ Agustín J. González ELO329.
Vectors (Vectores)‏ Agustín J. González ELO329.
Contenedores de la STL y Adaptadores de Contenedores
Transcripción de la presentación:

Laboratorio Análisis y Diseño de Algoritmos 2 Biblioteca estándar de templates de C++ Standard Template Library (STL)‏ Motivación Ejemplo: Lista + Iterador Contenedores e Iteradores Iteradores: Interfaz general

Laboratorio Análisis y Diseño de Algoritmos 2 Motivación Consideremos la forma en la que se suele diseñar el acceso a los elementos de una lista: template class Lista {... void iniciarCursor(); Elem * devolverActual(); void avanzarCursor(); bool esFinal();... };

Laboratorio Análisis y Diseño de Algoritmos 2 Ejemplo: Lista + Iterador #include using namespace std; int main (int argc, char * argv[]) { // Instanciamos una lista de enteros list lista;...

Laboratorio Análisis y Diseño de Algoritmos 2 Ejemplo: Lista + Iterador (continuación de la función main)‏... // Cargamos la lista insertando al final int n; cin >> n; while (n > 0) { lista.push_back(n); // Agregar al final de la lista cin >> n; } ordenar(lista);...

Laboratorio Análisis y Diseño de Algoritmos 2 Ejemplo: Lista + Iterador (continuación de la función main)‏... // Mostramos el contenido de la lista // Primero instanciamos e inicializamos un iterador list ::iterator i = lista.begin(); while (i != lista.end()) { cout << *i << " "; // Mostramos el contenido del elemento referenciado i++; // Avanzamos el iterador } return 0; }

Laboratorio Análisis y Diseño de Algoritmos 2 Ejemplo: Lista + Iterador // Ordenamiento creciente por selección void ordenar(list & l) { list ::iterator menor, i;// Vamos a usar dos iteradores menor = l.begin(); // “menor” va a recorrer todas las posiciones de la lista while (menor != l.end()) { i = menor; // “i” recorre todos los elementos desordenados a partir de “menor” while (i != l.end()) { if (*i < *menor) { int tmp = *menor; *menor = *i; *i = tmp; } i++; } menor++; }

Laboratorio Análisis y Diseño de Algoritmos 2 Contenedores e Iteradores Un contenedor es un objeto cuya función es almacenar otros objetos, y provee métodos para acceder a sus elementos. Los contenedores son de dos tipos:  Secuenciales: acomodan los elementos en forma lineal. Permiten operaciones de inserción y borrado en posiciones específicas. Por ejemplo: vector, list  Asociativos: cuyas operaciones sobre los elementos están basadas en claves. Hay dos tipos: Asociativos Simples: los elementos almacenados son las mismas claves. Por ejemplo: set, multiset Asociativos por Pares: se relaciona o asocia una clave con otro elemento. Por ejemplo: map, multimap Cada tipo de contenedor tiene un tipo de iterador asociado.

Laboratorio Análisis y Diseño de Algoritmos 2 Iteradores: Interfaz general Definición  TipoContenedor::iterator nombreIterador; Por ejemplo: set ::iterator it; list >::iterator it; Utilización  Avanzar iterador al siguiente elemento: it++  Acceder al valor de un elemento: *it  También es válido it->atributo y it->método()‏

Laboratorio Análisis y Diseño de Algoritmos 2 Iteradores: Interfaz general Utilización (continuación)‏  Inicializar iterador: it = contenedor.begin();  Cosultar si un iterador llegó al final de la secuencia: if (i != contenedor.end()) { // El iterador referencia un elemento válido } else { // El iterador llegó al final }

Laboratorio Análisis y Diseño de Algoritmos 2 Enlaces Standard Template Library (STL) C++  Documentación (se puede descargar)‏