SlideShare una empresa de Scribd logo
1 de 16
Descargar para leer sin conexión
2.3 STL y los Contenedores
     Básicos 3a parte
Cómo Usar el Contenedor deque
           de STL
Interfaz

 • Un objeto de tipo deque (pronunciado
   quot;deckquot;) puede almacenar y brindar
   acceso a una secuencia linear de
   elementos.
 • En este aspecto, un deque es similar a
   un vector; las dos clases comparten
   interfases de clase muy similares


                 Mtl. Lourdes Cahuich       3
#include <cstdlib>
#include <iostream>
#include <vector>
#include <deque>
using namespace std;
int main(int argc, char* argv[]) {
    vector<int> v(10, 1);
    deque<int> d(10, 1);
    v[9] = 2;
    d[9] = 2;
    cout << v.front() << quot; quot; << v.back() << endl;
    cout << d.front() << quot; quot; << d.back() << endl;
    v.push_back(3);
    d.push_back(3);
    v.pop_back();
    d.pop_back();
    cout << v.size() << endl;
    cout << d.size() << endl;
    ostream_iterator<int> out(cout, quot; quot;);
    copy(v.begin(), v.end(), out);
    copy(d.begin(), d.end(), out);
    return EXIT_SUCCESS;
}
                          Mtl. Lourdes Cahuich      4
Deques y vectores

 • Ambas clases poseen constructores,
   métodos de acceso de elementos,
   métodos de inserción y eliminación y
   soporte de iteradores, muy
   similares.
 • Los deques y vectores difieren, en
   su capacidad de manejar inserciones y
   eliminaciones de elementos del frente
   de sus respectivas estructuras
                Mtl. Lourdes Cahuich       5
Deques y vectores

 • deben usar las funciones de la clase
   miembro vector, insert y erase.
 • Estas funciones sobrecargan el
   elemento de copiado.
 • La clase deque, por otro lado, provee
   los métodos push_front and
   pop_front.


                 Mtl. Lourdes Cahuich      6
Deques y vectores

 • Estos métodos no sobrecargan el
   elemento de copiado.




                Mtl. Lourdes Cahuich   7
deque<int> d(10);
  // 10 elements, initialized
 to 0
d.push_front(2);
cout << d.front() << endl;
 // Outputs quot;2quot;
d.pop_front();
cout << d.front() << endl;
 // Outputs quot;0quot;
            Mtl. Lourdes Cahuich   8
Deques y vectores

 • La función count acepta un rango de
   elementos en un contenedor (a través
   de un iterador de inicio y fin) y un valor
   para contar.
 • La función regresa el número de
   ocurrencias del valor dentro del rango
   especificado.


                  Mtl. Lourdes Cahuich          9
Deques y vectores

 • La función count_if usa una función
   provista por el programador para
   determinar si es contado un elemento
   del rango especificado




                Mtl. Lourdes Cahuich      10
// a predicate

bool is_odd(int i) {
    return ((i % 2) == 1);
}
int main(int argc, char* argv[]) {
    deque<int> numbers;
    for (int i = 0; i < 20; i++) {
        numbers.push_back(i);
    }
      cout << count(numbers.begin(), numbers.end(), 10) <<
    endl;
      cout << count_if(numbers.begin(), numbers.end(),
    is_odd)    << endl;
      return EXIT_SUCCESS;
}



                         Mtl. Lourdes Cahuich                11
Deques y vectores

 • Para acomodar eficientemente
   inserciones y eliminaciones de
   elementos del frente y detrás, una
   implantación deque se basa típicamente
   en una serie de arreglos




                Mtl. Lourdes Cahuich        12
Deques y vectores

 • Comparando las estrategias de
   almacenamiento de elementos entre los
   dos contenedores es suficiente para
   ilustrar la principal diferencia entre los
   deques y los vectores.




                  Mtl. Lourdes Cahuich          13
Almacenamiento en deques y vectores




 • La figura representa la forma en que los
   elementos se almacenan en un vector
 • En esta figura, sombreamos los cuadros que
   representan los elementos del vector (el
   tamaño) y los cuadros que no están
   sombreados representan la memoria
   reservada (la capacidad).

                  Mtl. Lourdes Cahuich          14
Almacenamiento en deques y vectores

 • En este arreglo, insertar un elemento al
   inicio del vector no es una tarea trivial
   debido a que se requiere mover todos
   los elementos para hacer espacio para
   el nuevo elemento que se va a insertar.




                  Mtl. Lourdes Cahuich         15
Almacenamiento en deques y vectores




•Los deques reservan espacios de memoria al
frente y detrás de sus elementos almacenados.

•La figura ilustra esta diferencia fundamental
entre los vectores y deques.

                    Mtl. Lourdes Cahuich         16

Más contenido relacionado

Similar a STL deque interfaz y uso

5 Mecanismos Reuntilizacion Abstraccion
5 Mecanismos Reuntilizacion Abstraccion5 Mecanismos Reuntilizacion Abstraccion
5 Mecanismos Reuntilizacion AbstraccionUVM
 
19 Contenedores De Stl Basados En Arboles
19 Contenedores De Stl Basados En Arboles19 Contenedores De Stl Basados En Arboles
19 Contenedores De Stl Basados En ArbolesUVM
 
9 Colas
9 Colas9 Colas
9 ColasUVM
 
Objetos y arreglos en C#
Objetos y arreglos en C#Objetos y arreglos en C#
Objetos y arreglos en C#UVM
 
Clasificación de las estructuras de datos.pptx
Clasificación de las estructuras de datos.pptxClasificación de las estructuras de datos.pptx
Clasificación de las estructuras de datos.pptxRam Vazquez
 
Programacion fantasticos
Programacion  fantasticosProgramacion  fantasticos
Programacion fantasticosBrenda Jazmin
 
3 desarollo manejo datos capitulo 4 -01 introduccion colecciones
3 desarollo manejo datos capitulo 4 -01 introduccion colecciones3 desarollo manejo datos capitulo 4 -01 introduccion colecciones
3 desarollo manejo datos capitulo 4 -01 introduccion coleccionesluis freddy
 
Lenguaje de Programacion - Java
Lenguaje de Programacion - JavaLenguaje de Programacion - Java
Lenguaje de Programacion - Javazousbabastre
 
Poo 2009 u2_introd_a_la_poo_2
Poo 2009 u2_introd_a_la_poo_2Poo 2009 u2_introd_a_la_poo_2
Poo 2009 u2_introd_a_la_poo_2Axel
 
Ordenación de vectores en c++
Ordenación de vectores en c++Ordenación de vectores en c++
Ordenación de vectores en c++kjjkfhjsfhjsfh
 
suma de matriz A+ B, diagonal, Oracle 11g, matriz, dos dimensiones
suma de matriz A+ B, diagonal, Oracle 11g, matriz, dos dimensionessuma de matriz A+ B, diagonal, Oracle 11g, matriz, dos dimensiones
suma de matriz A+ B, diagonal, Oracle 11g, matriz, dos dimensionesHome
 
Ordenación de vectores en c++
Ordenación de vectores en c++Ordenación de vectores en c++
Ordenación de vectores en c++kjjkfhjsfhjsfh
 
18 Arboles Como Estructura De Busqueda
18 Arboles Como Estructura De Busqueda18 Arboles Como Estructura De Busqueda
18 Arboles Como Estructura De BusquedaUVM
 
SCJP, Clase 6: Collections
SCJP, Clase 6: CollectionsSCJP, Clase 6: Collections
SCJP, Clase 6: Collectionsflekoso
 

Similar a STL deque interfaz y uso (20)

Vectors
VectorsVectors
Vectors
 
5 Mecanismos Reuntilizacion Abstraccion
5 Mecanismos Reuntilizacion Abstraccion5 Mecanismos Reuntilizacion Abstraccion
5 Mecanismos Reuntilizacion Abstraccion
 
19 Contenedores De Stl Basados En Arboles
19 Contenedores De Stl Basados En Arboles19 Contenedores De Stl Basados En Arboles
19 Contenedores De Stl Basados En Arboles
 
9 Colas
9 Colas9 Colas
9 Colas
 
2 vectores matrices
2 vectores matrices2 vectores matrices
2 vectores matrices
 
2 vectores matrices
2 vectores matrices2 vectores matrices
2 vectores matrices
 
7.arreglos en java
7.arreglos en  java7.arreglos en  java
7.arreglos en java
 
Objetos y arreglos en C#
Objetos y arreglos en C#Objetos y arreglos en C#
Objetos y arreglos en C#
 
Clasificación de las estructuras de datos.pptx
Clasificación de las estructuras de datos.pptxClasificación de las estructuras de datos.pptx
Clasificación de las estructuras de datos.pptx
 
Programacion fantasticos
Programacion  fantasticosProgramacion  fantasticos
Programacion fantasticos
 
12 Arreglos
12 Arreglos12 Arreglos
12 Arreglos
 
3 desarollo manejo datos capitulo 4 -01 introduccion colecciones
3 desarollo manejo datos capitulo 4 -01 introduccion colecciones3 desarollo manejo datos capitulo 4 -01 introduccion colecciones
3 desarollo manejo datos capitulo 4 -01 introduccion colecciones
 
Lenguaje de Programacion - Java
Lenguaje de Programacion - JavaLenguaje de Programacion - Java
Lenguaje de Programacion - Java
 
Tema 5 - Estructuras de datos.pdf
Tema 5 - Estructuras de datos.pdfTema 5 - Estructuras de datos.pdf
Tema 5 - Estructuras de datos.pdf
 
Poo 2009 u2_introd_a_la_poo_2
Poo 2009 u2_introd_a_la_poo_2Poo 2009 u2_introd_a_la_poo_2
Poo 2009 u2_introd_a_la_poo_2
 
Ordenación de vectores en c++
Ordenación de vectores en c++Ordenación de vectores en c++
Ordenación de vectores en c++
 
suma de matriz A+ B, diagonal, Oracle 11g, matriz, dos dimensiones
suma de matriz A+ B, diagonal, Oracle 11g, matriz, dos dimensionessuma de matriz A+ B, diagonal, Oracle 11g, matriz, dos dimensiones
suma de matriz A+ B, diagonal, Oracle 11g, matriz, dos dimensiones
 
Ordenación de vectores en c++
Ordenación de vectores en c++Ordenación de vectores en c++
Ordenación de vectores en c++
 
18 Arboles Como Estructura De Busqueda
18 Arboles Como Estructura De Busqueda18 Arboles Como Estructura De Busqueda
18 Arboles Como Estructura De Busqueda
 
SCJP, Clase 6: Collections
SCJP, Clase 6: CollectionsSCJP, Clase 6: Collections
SCJP, Clase 6: Collections
 

Más de UVM

Tiempo compartido en programación
Tiempo compartido en programaciónTiempo compartido en programación
Tiempo compartido en programaciónUVM
 
Portafolio de evidencias del curso Programación Avanzada
Portafolio de evidencias del curso Programación AvanzadaPortafolio de evidencias del curso Programación Avanzada
Portafolio de evidencias del curso Programación AvanzadaUVM
 
Eficiencia en uso tiempo
Eficiencia en uso  tiempoEficiencia en uso  tiempo
Eficiencia en uso tiempoUVM
 
Administración de memoria arreglos dinamicos
Administración de memoria arreglos dinamicosAdministración de memoria arreglos dinamicos
Administración de memoria arreglos dinamicosUVM
 
Practica de arreglos
Practica de arreglosPractica de arreglos
Practica de arreglosUVM
 
Otra introducción a apuntadores
Otra introducción a apuntadoresOtra introducción a apuntadores
Otra introducción a apuntadoresUVM
 
Ejemplo de solución de práctica funciones stl
Ejemplo de solución de práctica funciones stlEjemplo de solución de práctica funciones stl
Ejemplo de solución de práctica funciones stlUVM
 
Breve repaso de apuntadores
Breve repaso de apuntadoresBreve repaso de apuntadores
Breve repaso de apuntadoresUVM
 
Arreglos conceptos básicos
Arreglos conceptos básicosArreglos conceptos básicos
Arreglos conceptos básicosUVM
 
Resolución práctica de tipos de datos
Resolución práctica de tipos de datosResolución práctica de tipos de datos
Resolución práctica de tipos de datosUVM
 
Resumen de funciones
Resumen de funcionesResumen de funciones
Resumen de funcionesUVM
 
Biblioteca estándar de funciones
Biblioteca estándar de funcionesBiblioteca estándar de funciones
Biblioteca estándar de funcionesUVM
 
Manejo de bits
Manejo de bitsManejo de bits
Manejo de bitsUVM
 
Aclaración de dudas 4 de septiembre
Aclaración de dudas 4 de septiembreAclaración de dudas 4 de septiembre
Aclaración de dudas 4 de septiembreUVM
 
Aclaraciones varias a códigos entregados en sesión 3
Aclaraciones varias a códigos entregados en sesión 3Aclaraciones varias a códigos entregados en sesión 3
Aclaraciones varias a códigos entregados en sesión 3UVM
 
Funciones definidas por el usuario
Funciones definidas por el usuarioFunciones definidas por el usuario
Funciones definidas por el usuarioUVM
 
Función main()
Función main()Función main()
Función main()UVM
 
Depuración de un programa en c++
Depuración de un programa en c++Depuración de un programa en c++
Depuración de un programa en c++UVM
 
Algunas dudas de la sesión 28 agosto
Algunas dudas de la sesión 28 agostoAlgunas dudas de la sesión 28 agosto
Algunas dudas de la sesión 28 agostoUVM
 
Estructura programa c++
Estructura programa c++Estructura programa c++
Estructura programa c++UVM
 

Más de UVM (20)

Tiempo compartido en programación
Tiempo compartido en programaciónTiempo compartido en programación
Tiempo compartido en programación
 
Portafolio de evidencias del curso Programación Avanzada
Portafolio de evidencias del curso Programación AvanzadaPortafolio de evidencias del curso Programación Avanzada
Portafolio de evidencias del curso Programación Avanzada
 
Eficiencia en uso tiempo
Eficiencia en uso  tiempoEficiencia en uso  tiempo
Eficiencia en uso tiempo
 
Administración de memoria arreglos dinamicos
Administración de memoria arreglos dinamicosAdministración de memoria arreglos dinamicos
Administración de memoria arreglos dinamicos
 
Practica de arreglos
Practica de arreglosPractica de arreglos
Practica de arreglos
 
Otra introducción a apuntadores
Otra introducción a apuntadoresOtra introducción a apuntadores
Otra introducción a apuntadores
 
Ejemplo de solución de práctica funciones stl
Ejemplo de solución de práctica funciones stlEjemplo de solución de práctica funciones stl
Ejemplo de solución de práctica funciones stl
 
Breve repaso de apuntadores
Breve repaso de apuntadoresBreve repaso de apuntadores
Breve repaso de apuntadores
 
Arreglos conceptos básicos
Arreglos conceptos básicosArreglos conceptos básicos
Arreglos conceptos básicos
 
Resolución práctica de tipos de datos
Resolución práctica de tipos de datosResolución práctica de tipos de datos
Resolución práctica de tipos de datos
 
Resumen de funciones
Resumen de funcionesResumen de funciones
Resumen de funciones
 
Biblioteca estándar de funciones
Biblioteca estándar de funcionesBiblioteca estándar de funciones
Biblioteca estándar de funciones
 
Manejo de bits
Manejo de bitsManejo de bits
Manejo de bits
 
Aclaración de dudas 4 de septiembre
Aclaración de dudas 4 de septiembreAclaración de dudas 4 de septiembre
Aclaración de dudas 4 de septiembre
 
Aclaraciones varias a códigos entregados en sesión 3
Aclaraciones varias a códigos entregados en sesión 3Aclaraciones varias a códigos entregados en sesión 3
Aclaraciones varias a códigos entregados en sesión 3
 
Funciones definidas por el usuario
Funciones definidas por el usuarioFunciones definidas por el usuario
Funciones definidas por el usuario
 
Función main()
Función main()Función main()
Función main()
 
Depuración de un programa en c++
Depuración de un programa en c++Depuración de un programa en c++
Depuración de un programa en c++
 
Algunas dudas de la sesión 28 agosto
Algunas dudas de la sesión 28 agostoAlgunas dudas de la sesión 28 agosto
Algunas dudas de la sesión 28 agosto
 
Estructura programa c++
Estructura programa c++Estructura programa c++
Estructura programa c++
 

Último

Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...AlanCedillo9
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxJOSEMANUELHERNANDEZH11
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...FacuMeza2
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersIván López Martín
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 

Último (19)

Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptx
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 

STL deque interfaz y uso

  • 1. 2.3 STL y los Contenedores Básicos 3a parte
  • 2. Cómo Usar el Contenedor deque de STL
  • 3. Interfaz • Un objeto de tipo deque (pronunciado quot;deckquot;) puede almacenar y brindar acceso a una secuencia linear de elementos. • En este aspecto, un deque es similar a un vector; las dos clases comparten interfases de clase muy similares Mtl. Lourdes Cahuich 3
  • 4. #include <cstdlib> #include <iostream> #include <vector> #include <deque> using namespace std; int main(int argc, char* argv[]) { vector<int> v(10, 1); deque<int> d(10, 1); v[9] = 2; d[9] = 2; cout << v.front() << quot; quot; << v.back() << endl; cout << d.front() << quot; quot; << d.back() << endl; v.push_back(3); d.push_back(3); v.pop_back(); d.pop_back(); cout << v.size() << endl; cout << d.size() << endl; ostream_iterator<int> out(cout, quot; quot;); copy(v.begin(), v.end(), out); copy(d.begin(), d.end(), out); return EXIT_SUCCESS; } Mtl. Lourdes Cahuich 4
  • 5. Deques y vectores • Ambas clases poseen constructores, métodos de acceso de elementos, métodos de inserción y eliminación y soporte de iteradores, muy similares. • Los deques y vectores difieren, en su capacidad de manejar inserciones y eliminaciones de elementos del frente de sus respectivas estructuras Mtl. Lourdes Cahuich 5
  • 6. Deques y vectores • deben usar las funciones de la clase miembro vector, insert y erase. • Estas funciones sobrecargan el elemento de copiado. • La clase deque, por otro lado, provee los métodos push_front and pop_front. Mtl. Lourdes Cahuich 6
  • 7. Deques y vectores • Estos métodos no sobrecargan el elemento de copiado. Mtl. Lourdes Cahuich 7
  • 8. deque<int> d(10); // 10 elements, initialized to 0 d.push_front(2); cout << d.front() << endl; // Outputs quot;2quot; d.pop_front(); cout << d.front() << endl; // Outputs quot;0quot; Mtl. Lourdes Cahuich 8
  • 9. Deques y vectores • La función count acepta un rango de elementos en un contenedor (a través de un iterador de inicio y fin) y un valor para contar. • La función regresa el número de ocurrencias del valor dentro del rango especificado. Mtl. Lourdes Cahuich 9
  • 10. Deques y vectores • La función count_if usa una función provista por el programador para determinar si es contado un elemento del rango especificado Mtl. Lourdes Cahuich 10
  • 11. // a predicate bool is_odd(int i) { return ((i % 2) == 1); } int main(int argc, char* argv[]) { deque<int> numbers; for (int i = 0; i < 20; i++) { numbers.push_back(i); } cout << count(numbers.begin(), numbers.end(), 10) << endl; cout << count_if(numbers.begin(), numbers.end(), is_odd) << endl; return EXIT_SUCCESS; } Mtl. Lourdes Cahuich 11
  • 12. Deques y vectores • Para acomodar eficientemente inserciones y eliminaciones de elementos del frente y detrás, una implantación deque se basa típicamente en una serie de arreglos Mtl. Lourdes Cahuich 12
  • 13. Deques y vectores • Comparando las estrategias de almacenamiento de elementos entre los dos contenedores es suficiente para ilustrar la principal diferencia entre los deques y los vectores. Mtl. Lourdes Cahuich 13
  • 14. Almacenamiento en deques y vectores • La figura representa la forma en que los elementos se almacenan en un vector • En esta figura, sombreamos los cuadros que representan los elementos del vector (el tamaño) y los cuadros que no están sombreados representan la memoria reservada (la capacidad). Mtl. Lourdes Cahuich 14
  • 15. Almacenamiento en deques y vectores • En este arreglo, insertar un elemento al inicio del vector no es una tarea trivial debido a que se requiere mover todos los elementos para hacer espacio para el nuevo elemento que se va a insertar. Mtl. Lourdes Cahuich 15
  • 16. Almacenamiento en deques y vectores •Los deques reservan espacios de memoria al frente y detrás de sus elementos almacenados. •La figura ilustra esta diferencia fundamental entre los vectores y deques. Mtl. Lourdes Cahuich 16