SlideShare a Scribd company logo
1 of 25
Download to read offline
2.2 STL y los Contenedores
     Básicos 2a parte
Un Vector Como un Contenedor
            de STL
Vectores

 • En programación, por lo general se
   requiere recolectar o agregar objetos.
   Por lo tanto, la clase vector es uno de
   los contenedores de STL más
   frecuentemente usados.




                  Mtl. Lourdes Cahuich       3
Vectores

 • Como un contenedor de STL, la clase
   vector brinda acceso a sus elementos a
   través de iteradores.
 • Los iteradores permiten
   interoperabilidad de los objetos vector y
   los algoritmos de STL




                 Mtl. Lourdes Cahuich          4
vector<int> v;
for (int i = 0; i < 10; i++) {
    v.push_back(i);
}// Iterate though elements
vector<int>::iterator it;
for (it = v.begin();
 it != v.end(); it++) {
    cout << *it << endl;
}

            Mtl. Lourdes Cahuich   5
Vectores

 • El segundo bucle-for, que saca el
   contenido del vector al flujo de salida
   estándar, usa las funciones miembro
   begin y end de la clase vector.
 • Estas funciones regresan los
   iteradores en el vector que las
   invoca.


                  Mtl. Lourdes Cahuich       6
Vectores

 • La función begin regresa un
   iterador en el primer elemento del
   vector, y la función end regresa un
   iterador posicionado más allá del último
   elemento en el vector.




                 Mtl. Lourdes Cahuich         7
Vectores

 • En el segundo bucle-for se inicializa el
   iterador it al iterador regresado por
   la función begin.
 • Durante cada iteración, el bucle-for
   incrementa el iterador it.
 • Esto causa que el iterador se recorra
   a través del vector.


                 Mtl. Lourdes Cahuich         8
Vectores

 • El recorrido termina cuando el
   iterador iguala al iterador
   regresado de la función end

 ostream_iterator<int> out(cout, quot;nquot;);
 copy(v.begin(), v.end(), out);




                 Mtl. Lourdes Cahuich     9
Vectores - copy

 • La función copy de STL copia una
   secuencia de elementos.
 • El primer y segundo parámetros son
   iteradores que delimitan la
   secuencia.
 • El tercer parámetro especifica donde
   copiar la secuencia.


                  Mtl. Lourdes Cahuich    10
Vectores - copy

 • En el listado anterior, el tercer
   parámetro es un iterador del flujo de
   salida inicializado al flujo de salida
   estándar.
 • Esto causa que la función copy saque a
   la consola los elementos almacenados
   en el vector.


                  Mtl. Lourdes Cahuich      11
Vectores –cambio iteradores

 • Si quisiéramos sacar los elementos en
   el vector en orden inverso (de atrás
   hacia adelante), necesitamos cambiar
   los iteradores usados.
 • El siguiente listado usa las funciones
   rbegin y rend en lugar de las
   funciones begin y end.



                  Mtl. Lourdes Cahuich      12
Vectores - copy

 • Las funciones rbegin y rend regresan
   los iteradores en el último elemento
   y una posición antes del primer
   elemento, respectivamente




                  Mtl. Lourdes Cahuich    13
vector<int> v;
for (int i = 0; i < 10; i++) {
  v.push_back(i);
}
ostream_iterator<int> out(cout,quot;nquot;);
copy(v.rbegin(), v.rend(), out);




             Mtl. Lourdes Cahuich   14
Vectores – insertar y eliminar

 • La clase vector también brinda
   soporte para la inserción y eliminación
   de elementos de cualquier parte del
   vector.
 • Las funciones insert y erase
   desempeñan esas tareas.
 • Estas funciones toman los iteradores
   del vector como parámetros.

                  Mtl. Lourdes Cahuich       15
Vectores – insertar y eliminar

 • Para apreciar el poder de las funciones
   insert y erase debemos entender
   exactamente lo que estas funciones
   hacen.
 • Consideremos el vector en la sig. figura
   y las tareas que la función insert
   desempeña para insertar un elemento
   (con un valor de 5) al frente de ese
   vector
                  Mtl. Lourdes Cahuich        16
Vectores – tamaño y capacidad




 • Tamaño y capacidad son dos
   propiedades diferentes de un vector.
 • El tamaño del vector en la figura es
   tres, debido a que almacena tres
   elementos.
                 Mtl. Lourdes Cahuich     17
Vectores – tamaño y capacidad

 • Este vector también tiene reservados
   cuatro lugares de memoria para
   permitir la adición de nuevos
   elementos.
 • El número de lugares reservados de
   memoria, más el tamaño es conocido
   como la capacidad.


                 Mtl. Lourdes Cahuich     18
Vectores – tamaño y capacidad

 • El tener una capacidad más grande que
   su tamaño permite que operaciones
   como insert o push_back se
   completen sin tener que colocar
   memoria adicional.
 • La colocación de memoria solo se
   realiza cuando se agotan los lugares de
   memoria reservados

                 Mtl. Lourdes Cahuich        19
Vectores – tamaño y capacidad

 • Antes de añadir al inicio el elemento
   nuevo, la función insert debe copiar
   los elementos existentes un lugar a la
   derecha para crear un espacio vacío
   para el elemento nuevo.




                 Mtl. Lourdes Cahuich       20
Vectores – tamaño y capacidad

 • La sig. figura representa el estado del
   vector después de que la función copia
   los elementos un espacio a la derecha.




                 Mtl. Lourdes Cahuich        21
Vectores – tamaño y capacidad

 • El elemento nuevo con el valor de 5 es
   posteriormente copiado en el lugar
   vacío




                 Mtl. Lourdes Cahuich       22
Vectores – tamaño y capacidad

 • Para insertar sólo un elemento al frente
   del vector, la función insert tiene que
   mover primero los otros elementos.
 • La función erase se realiza de forma
   similar.




                 Mtl. Lourdes Cahuich         23
Vector - erase

 • Para borrar el primer elemento en un
   vector, la función erase debe copiar
   todos los elementos restantes un lugar
   a la izquierda.




                 Mtl. Lourdes Cahuich       24
Vector - erase

 • Todo este proceso de copiado puede
   llegar a ser pesado si estamos tratando
   con un vector que contiene un número
   grande de elementos.




                 Mtl. Lourdes Cahuich        25

More Related Content

Similar to 7 Stl Y Los Contenedores Basicos 2 Parte

Similar to 7 Stl Y Los Contenedores Basicos 2 Parte (20)

Ordenación de vectores en c++
Ordenación de vectores en c++Ordenación de vectores en c++
Ordenación de vectores en c++
 
Ordenación de vectores en c++
Ordenación de vectores en c++Ordenación de vectores en c++
Ordenación de vectores en c++
 
Vectors
VectorsVectors
Vectors
 
2 vectores matrices
2 vectores matrices2 vectores matrices
2 vectores matrices
 
2 vectores matrices
2 vectores matrices2 vectores matrices
2 vectores matrices
 
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
 
Trabajo de consulta
Trabajo de consultaTrabajo de consulta
Trabajo de consulta
 
Clase1. introducción a matlab
Clase1. introducción a matlabClase1. introducción a matlab
Clase1. introducción a matlab
 
Tutorial rapido de octave
Tutorial rapido de octaveTutorial rapido de octave
Tutorial rapido de octave
 
Programacion fantasticos
Programacion  fantasticosProgramacion  fantasticos
Programacion fantasticos
 
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
 
Vectores, array y sus métodos
Vectores, array y sus métodosVectores, array y sus métodos
Vectores, array y sus métodos
 
Objetos y arreglos en C#
Objetos y arreglos en C#Objetos y arreglos en C#
Objetos y arreglos en C#
 
Métodos de la clase vector
Métodos de la clase vectorMétodos de la clase vector
Métodos de la clase vector
 
5 Mecanismos Reuntilizacion Abstraccion
5 Mecanismos Reuntilizacion Abstraccion5 Mecanismos Reuntilizacion Abstraccion
5 Mecanismos Reuntilizacion Abstraccion
 
Matlab_basic.pptx
Matlab_basic.pptxMatlab_basic.pptx
Matlab_basic.pptx
 
Divide y Vencerás
Divide y VencerásDivide y Vencerás
Divide y Vencerás
 
Matlab introducción
Matlab   introducciónMatlab   introducción
Matlab introducción
 
Matlab introducción
Matlab   introducciónMatlab   introducción
Matlab introducción
 
Silabo programación ii 2015-i
Silabo programación ii 2015-iSilabo programación ii 2015-i
Silabo programación ii 2015-i
 

More from 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
 

More from 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++
 

Recently uploaded

_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdfBetianaJuarez1
 
La electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfLa electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfcristianrb0324
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfedepmariaperez
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxAlexander López
 
Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1ivanapaterninar
 
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxtjcesar1
 
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docxTALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docxobandopaula444
 
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024u20211198540
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfjeondanny1997
 
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docxPLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docxhasbleidit
 
Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)JuanStevenTrujilloCh
 
Trabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointTrabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointValerioIvanDePazLoja
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfFernandoOblitasVivan
 
Slideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan GerenciaSlideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan Gerenciacubillannoly
 
Análisis de Artefactos Tecnologicos (3) (1).pdf
Análisis de Artefactos Tecnologicos  (3) (1).pdfAnálisis de Artefactos Tecnologicos  (3) (1).pdf
Análisis de Artefactos Tecnologicos (3) (1).pdfsharitcalderon04
 
Viguetas Pretensadas en concreto armado
Viguetas Pretensadas  en concreto armadoViguetas Pretensadas  en concreto armado
Viguetas Pretensadas en concreto armadob7fwtwtfxf
 
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptx
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptxLINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptx
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptxkimontey
 
David_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptxDavid_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptxDAVIDROBERTOGALLEGOS
 
CommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersCommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersIván López Martín
 

Recently uploaded (20)

_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
 
La electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfLa electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdf
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdf
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
 
Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1
 
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
 
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docxTALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
 
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
 
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docxPLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
 
Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)
 
Trabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointTrabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power Point
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdf
 
Slideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan GerenciaSlideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan Gerencia
 
Análisis de Artefactos Tecnologicos (3) (1).pdf
Análisis de Artefactos Tecnologicos  (3) (1).pdfAnálisis de Artefactos Tecnologicos  (3) (1).pdf
Análisis de Artefactos Tecnologicos (3) (1).pdf
 
Viguetas Pretensadas en concreto armado
Viguetas Pretensadas  en concreto armadoViguetas Pretensadas  en concreto armado
Viguetas Pretensadas en concreto armado
 
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptx
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptxLINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptx
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptx
 
El camino a convertirse en Microsoft MVP
El camino a convertirse en Microsoft MVPEl camino a convertirse en Microsoft MVP
El camino a convertirse en Microsoft MVP
 
David_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptxDavid_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptx
 
CommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersCommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 Testcontainers
 

7 Stl Y Los Contenedores Basicos 2 Parte

  • 1. 2.2 STL y los Contenedores Básicos 2a parte
  • 2. Un Vector Como un Contenedor de STL
  • 3. Vectores • En programación, por lo general se requiere recolectar o agregar objetos. Por lo tanto, la clase vector es uno de los contenedores de STL más frecuentemente usados. Mtl. Lourdes Cahuich 3
  • 4. Vectores • Como un contenedor de STL, la clase vector brinda acceso a sus elementos a través de iteradores. • Los iteradores permiten interoperabilidad de los objetos vector y los algoritmos de STL Mtl. Lourdes Cahuich 4
  • 5. vector<int> v; for (int i = 0; i < 10; i++) { v.push_back(i); }// Iterate though elements vector<int>::iterator it; for (it = v.begin(); it != v.end(); it++) { cout << *it << endl; } Mtl. Lourdes Cahuich 5
  • 6. Vectores • El segundo bucle-for, que saca el contenido del vector al flujo de salida estándar, usa las funciones miembro begin y end de la clase vector. • Estas funciones regresan los iteradores en el vector que las invoca. Mtl. Lourdes Cahuich 6
  • 7. Vectores • La función begin regresa un iterador en el primer elemento del vector, y la función end regresa un iterador posicionado más allá del último elemento en el vector. Mtl. Lourdes Cahuich 7
  • 8. Vectores • En el segundo bucle-for se inicializa el iterador it al iterador regresado por la función begin. • Durante cada iteración, el bucle-for incrementa el iterador it. • Esto causa que el iterador se recorra a través del vector. Mtl. Lourdes Cahuich 8
  • 9. Vectores • El recorrido termina cuando el iterador iguala al iterador regresado de la función end ostream_iterator<int> out(cout, quot;nquot;); copy(v.begin(), v.end(), out); Mtl. Lourdes Cahuich 9
  • 10. Vectores - copy • La función copy de STL copia una secuencia de elementos. • El primer y segundo parámetros son iteradores que delimitan la secuencia. • El tercer parámetro especifica donde copiar la secuencia. Mtl. Lourdes Cahuich 10
  • 11. Vectores - copy • En el listado anterior, el tercer parámetro es un iterador del flujo de salida inicializado al flujo de salida estándar. • Esto causa que la función copy saque a la consola los elementos almacenados en el vector. Mtl. Lourdes Cahuich 11
  • 12. Vectores –cambio iteradores • Si quisiéramos sacar los elementos en el vector en orden inverso (de atrás hacia adelante), necesitamos cambiar los iteradores usados. • El siguiente listado usa las funciones rbegin y rend en lugar de las funciones begin y end. Mtl. Lourdes Cahuich 12
  • 13. Vectores - copy • Las funciones rbegin y rend regresan los iteradores en el último elemento y una posición antes del primer elemento, respectivamente Mtl. Lourdes Cahuich 13
  • 14. vector<int> v; for (int i = 0; i < 10; i++) { v.push_back(i); } ostream_iterator<int> out(cout,quot;nquot;); copy(v.rbegin(), v.rend(), out); Mtl. Lourdes Cahuich 14
  • 15. Vectores – insertar y eliminar • La clase vector también brinda soporte para la inserción y eliminación de elementos de cualquier parte del vector. • Las funciones insert y erase desempeñan esas tareas. • Estas funciones toman los iteradores del vector como parámetros. Mtl. Lourdes Cahuich 15
  • 16. Vectores – insertar y eliminar • Para apreciar el poder de las funciones insert y erase debemos entender exactamente lo que estas funciones hacen. • Consideremos el vector en la sig. figura y las tareas que la función insert desempeña para insertar un elemento (con un valor de 5) al frente de ese vector Mtl. Lourdes Cahuich 16
  • 17. Vectores – tamaño y capacidad • Tamaño y capacidad son dos propiedades diferentes de un vector. • El tamaño del vector en la figura es tres, debido a que almacena tres elementos. Mtl. Lourdes Cahuich 17
  • 18. Vectores – tamaño y capacidad • Este vector también tiene reservados cuatro lugares de memoria para permitir la adición de nuevos elementos. • El número de lugares reservados de memoria, más el tamaño es conocido como la capacidad. Mtl. Lourdes Cahuich 18
  • 19. Vectores – tamaño y capacidad • El tener una capacidad más grande que su tamaño permite que operaciones como insert o push_back se completen sin tener que colocar memoria adicional. • La colocación de memoria solo se realiza cuando se agotan los lugares de memoria reservados Mtl. Lourdes Cahuich 19
  • 20. Vectores – tamaño y capacidad • Antes de añadir al inicio el elemento nuevo, la función insert debe copiar los elementos existentes un lugar a la derecha para crear un espacio vacío para el elemento nuevo. Mtl. Lourdes Cahuich 20
  • 21. Vectores – tamaño y capacidad • La sig. figura representa el estado del vector después de que la función copia los elementos un espacio a la derecha. Mtl. Lourdes Cahuich 21
  • 22. Vectores – tamaño y capacidad • El elemento nuevo con el valor de 5 es posteriormente copiado en el lugar vacío Mtl. Lourdes Cahuich 22
  • 23. Vectores – tamaño y capacidad • Para insertar sólo un elemento al frente del vector, la función insert tiene que mover primero los otros elementos. • La función erase se realiza de forma similar. Mtl. Lourdes Cahuich 23
  • 24. Vector - erase • Para borrar el primer elemento en un vector, la función erase debe copiar todos los elementos restantes un lugar a la izquierda. Mtl. Lourdes Cahuich 24
  • 25. Vector - erase • Todo este proceso de copiado puede llegar a ser pesado si estamos tratando con un vector que contiene un número grande de elementos. Mtl. Lourdes Cahuich 25