Laboratorio - PowerPoint PPT Presentation

1 / 10
About This Presentation
Title:

Laboratorio

Description:

ordenar(lista); Laboratorio. An lisis y Dise o de Algoritmos 2. Laboratorio ... void ordenar(list int & l) { list int ::iterator menor, i; // Vamos a usar dos ... – PowerPoint PPT presentation

Number of Views:53
Avg rating:3.0/5.0
Slides: 11
Provided by: exaUni
Category:

less

Transcript and Presenter's Notes

Title: Laboratorio


1
Biblioteca estándar de templates de C Standard
Template Library (STL)?
  • Motivación
  • Ejemplo Lista Iterador
  • Contenedores e Iteradores
  • Iteradores Interfaz general

2
Motivación
  • Consideremos la forma en la que se suele diseñar
    el acceso a los elementos de una lista
  • templateltclass Elemgt class Lista
  • ...
  • void iniciarCursor()
  • Elem devolverActual()
  • void avanzarCursor()
  • bool esFinal()
  • ...

3
Ejemplo Lista Iterador
  • include ltiostreamgt
  • include ltlistgt
  • using namespace std
  • int main (int argc, char argv)
  • // Instanciamos una lista de enteros
  • listltintgt lista
  • ...

4
Ejemplo Lista Iterador
  • (continuación de la función main)?
  • ...
  • // Cargamos la lista insertando al final
  • int n
  • cin gtgt n
  • while (n gt 0)
  • lista.push_back(n) // Agregar al final
    de la lista
  • cin gtgt n
  • ordenar(lista)
  • ...

5
Ejemplo Lista Iterador
  • (continuación de la función main)?
  • ...
  • // Mostramos el contenido de la lista
  • // Primero instanciamos e inicializamos un
    iterador
  • listltintgtiterator i lista.begin()
  • while (i ! lista.end())
  • cout ltlt i ltlt " " // Mostramos el
    contenido del elemento referenciado
  • i // Avanzamos el iterador
  • return 0

6
Ejemplo Lista Iterador
  • // Ordenamiento creciente por selección
  • void ordenar(listltintgt l)
  • listltintgtiterator 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 lt menor)
  • int tmp menor
  • menor i
  • i tmp
  • i
  • menor

7
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.

8
Iteradores Interfaz general
  • Definición
  • TipoContenedoriterator nombreIterador
  • Por ejemplo
  • setltintgtiterator it
  • listltsetltstringgt gtiterator it
  • Utilización
  • Avanzar iterador al siguiente elemento
  • it
  • Acceder al valor de un elemento
  • it
  • También es válido
  • it-gtatributo y it-gtmétodo()?

9
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

10
Enlaces
  • Standard Template Library (STL) C
  • Documentación (se puede descargar)?
  • http//www.sgi.com/tech/stl
Write a Comment
User Comments (0)
About PowerShow.com