Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Clases de C++
Clases de C++
mat-151
Tuesday, May 8, 18
Variables y funciones estáticas de clase
Tuesday, May 8, 18
Variables y funciones estáticas de clase
Tuesday, May 8, 18
Contenedores en la STL de C++
Tuesday, May 8, 18
Contenedores en la STL de C++
Tuesday, May 8, 18
Contenedores en la STL de C++
Tuesday, May 8, 18
Contenedores en la STL de C++
• Los contenedores dan acceso a sus datos ya sea por acceso directo o a través
de iteradores.
Tuesday, May 8, 18
Contenedores en la STL de C++
• Los contenedores dan acceso a sus datos ya sea por acceso directo o a través
de iteradores.
Tuesday, May 8, 18
Contenedores en la STL de C++
• Los contenedores dan acceso a sus datos ya sea por acceso directo o a través
de iteradores.
Tuesday, May 8, 18
Contenedores en la STL de C++
Tuesday, May 8, 18
Contenedores en la STL de C++
Tuesday, May 8, 18
Contenedores en la STL de C++
• Contenedores secuenciales:
Tuesday, May 8, 18
Contenedores en la STL de C++
• Contenedores secuenciales:
• vector, deque, list
Tuesday, May 8, 18
Contenedores en la STL de C++
• Contenedores secuenciales:
• vector, deque, list
• Adaptadores de contenedor:
Tuesday, May 8, 18
Contenedores en la STL de C++
• Contenedores secuenciales:
• vector, deque, list
• Adaptadores de contenedor:
Tuesday, May 8, 18
Contenedores en la STL de C++
• Contenedores secuenciales:
• vector, deque, list
• Adaptadores de contenedor:
• Contenedores asociativos:
Tuesday, May 8, 18
Contenedores en la STL de C++
• Contenedores secuenciales:
• vector, deque, list
• Adaptadores de contenedor:
• Contenedores asociativos:
• set, multiset, map, multimap.
Tuesday, May 8, 18
Iteradores de contenedores
Tuesday, May 8, 18
Iteradores de contenedores
Tuesday, May 8, 18
Iteradores de contenedores
• Contenedor::iterador
Tuesday, May 8, 18
Iteradores de contenedores
• Contenedor::iterador
• permitiendo recorrer como un apuntador los datos con los operadores ++,
==, !=, y los dos iteradores predefinidos begin( ) y end( ).
Tuesday, May 8, 18
Iteradores de contenedores
• Contenedor::iterador
• permitiendo recorrer como un apuntador los datos con los operadores ++,
==, !=, y los dos iteradores predefinidos begin( ) y end( ).
Tuesday, May 8, 18
Contenedores secuenciales
Tuesday, May 8, 18
Contenedores secuenciales
Tuesday, May 8, 18
Contenedores secuenciales
Tuesday, May 8, 18
Contenedores secuenciales
• Inserción y eliminación.
Tuesday, May 8, 18
Contenedores secuenciales
• Inserción y eliminación.
Tuesday, May 8, 18
Contenedores secuenciales
• Inserción y eliminación.
Tuesday, May 8, 18
Contenedores secuenciales
• Inserción y eliminación.
Tuesday, May 8, 18
Contenedores secuenciales
• Inserción y eliminación.
Tuesday, May 8, 18
Contenedores secuenciales
• Inserción y eliminación.
Tuesday, May 8, 18
Contenedores secuenciales: vector
Tuesday, May 8, 18
Contenedores secuenciales: vector
Tuesday, May 8, 18
Contenedores secuenciales: vector
Tuesday, May 8, 18
Contenedores secuenciales: vector
Tuesday, May 8, 18
Contenedores secuenciales: vector
Tuesday, May 8, 18
Contenedores secuenciales: vector
Tuesday, May 8, 18
Contenedores secuenciales: vector
Tuesday, May 8, 18
Contenedores secuenciales: vector
Tuesday, May 8, 18
Contenedores secuenciales: vector
Tuesday, May 8, 18
Contenedores secuenciales: vector
• Los vectores también tienen capacidad, que determina el espacio adicional que se
puede utilizar (para no re-dimensionar el tamaño de memoria cada vez).
Tuesday, May 8, 18
Contenedores secuenciales: vector
• Los vectores también tienen capacidad, que determina el espacio adicional que se
puede utilizar (para no re-dimensionar el tamaño de memoria cada vez).
Tuesday, May 8, 18
Contenedores secuenciales: vector
• Los vectores también tienen capacidad, que determina el espacio adicional que se
puede utilizar (para no re-dimensionar el tamaño de memoria cada vez).
Tuesday, May 8, 18
Contenedores secuenciales: vector
• Los vectores también tienen capacidad, que determina el espacio adicional que se
puede utilizar (para no re-dimensionar el tamaño de memoria cada vez).
Tuesday, May 8, 18
Contenedores secuenciales: vector
• Los vectores también tienen capacidad, que determina el espacio adicional que se
puede utilizar (para no re-dimensionar el tamaño de memoria cada vez).
Tuesday, May 8, 18
Contenedores secuenciales: vector
• Los vectores también tienen capacidad, que determina el espacio adicional que se
puede utilizar (para no re-dimensionar el tamaño de memoria cada vez).
Tuesday, May 8, 18
Contenedores secuenciales: vector
• Los vectores también tienen capacidad, que determina el espacio adicional que se
puede utilizar (para no re-dimensionar el tamaño de memoria cada vez).
Tuesday, May 8, 18
Contenedores secuenciales: vector
Funciones miembro:
Tuesday, May 8, 18
Contenedores secuenciales: vector
Funciones miembro:
(constructor) constructor del vector
(destructor) destructor del vector
operador = copia el contenido del vector
Tuesday, May 8, 18
Contenedores secuenciales: vector
Funciones miembro:
(constructor) constructor del vector
(destructor) destructor del vector
operador = copia el contenido del vector
Iteradores:
Tuesday, May 8, 18
Contenedores secuenciales: vector
Funciones miembro:
(constructor) constructor del vector
(destructor) destructor del vector
operador = copia el contenido del vector
Iteradores:
begin regresa el iterador al inicio
end regresa el iterador al final
regresa el iterador reverso al
rbegin
inicio reverso
regresa el iterador reverso al
rend
final reverso
Tuesday, May 8, 18
Contenedores secuenciales: vector
Funciones miembro:
(constructor) constructor del vector
(destructor) destructor del vector
operador = copia el contenido del vector
Iteradores:
begin regresa el iterador al inicio
end regresa el iterador al final
regresa el iterador reverso al
rbegin
inicio reverso
regresa el iterador reverso al
rend
final reverso
Capacidad:
Tuesday, May 8, 18
Contenedores secuenciales: vector
Funciones miembro: empty prueba si el vector está vacío
(constructor) constructor del vector reserve pide un cambio en la capacidad
(destructor) destructor del vector
operador = copia el contenido del vector
Iteradores:
begin regresa el iterador al inicio
end regresa el iterador al final
regresa el iterador reverso al
rbegin
inicio reverso
regresa el iterador reverso al
rend
final reverso
Capacidad:
size regresa el tamaño
max_size regresa el tamaño máximo
resize cambia el tamaño
regresa la capacidad de
capacity
almacenamiento
Tuesday, May 8, 18
Contenedores secuenciales: vector
Funciones miembro: empty prueba si el vector está vacío
(constructor) constructor del vector reserve pide un cambio en la capacidad
(destructor) destructor del vector
Acceso a elementos:
operador = copia el contenido del vector
Iteradores:
begin regresa el iterador al inicio
end regresa el iterador al final
regresa el iterador reverso al
rbegin
inicio reverso
regresa el iterador reverso al
rend
final reverso
Capacidad:
size regresa el tamaño
max_size regresa el tamaño máximo
resize cambia el tamaño
regresa la capacidad de
capacity
almacenamiento
Tuesday, May 8, 18
Contenedores secuenciales: vector
Funciones miembro: empty prueba si el vector está vacío
(constructor) constructor del vector reserve pide un cambio en la capacidad
(destructor) destructor del vector
Acceso a elementos:
operador = copia el contenido del vector
operador [] accede un elemento
Iteradores: at accede un elemento
begin regresa el iterador al inicio front accede al primer elemento
end regresa el iterador al final back accede al último elemento
regresa el iterador reverso al
rbegin
inicio reverso
regresa el iterador reverso al
rend
final reverso
Capacidad:
size regresa el tamaño
max_size regresa el tamaño máximo
resize cambia el tamaño
regresa la capacidad de
capacity
almacenamiento
Tuesday, May 8, 18
Contenedores secuenciales: vector
Funciones miembro: empty prueba si el vector está vacío
(constructor) constructor del vector reserve pide un cambio en la capacidad
(destructor) destructor del vector
Acceso a elementos:
operador = copia el contenido del vector
operador [] accede un elemento
Iteradores: at accede un elemento
begin regresa el iterador al inicio front accede al primer elemento
end regresa el iterador al final back accede al último elemento
regresa el iterador reverso al
rbegin Modificadores:
inicio reverso
regresa el iterador reverso al
rend
final reverso
Capacidad:
size regresa el tamaño
max_size regresa el tamaño máximo
resize cambia el tamaño
regresa la capacidad de
capacity
almacenamiento
Tuesday, May 8, 18
Contenedores secuenciales: vector
Funciones miembro: empty prueba si el vector está vacío
(constructor) constructor del vector reserve pide un cambio en la capacidad
(destructor) destructor del vector
Acceso a elementos:
operador = copia el contenido del vector
operador [] accede un elemento
Iteradores: at accede un elemento
begin regresa el iterador al inicio front accede al primer elemento
end regresa el iterador al final back accede al último elemento
regresa el iterador reverso al
rbegin Modificadores:
inicio reverso
regresa el iterador reverso al assign asigna un contenido al vector
rend
final reverso push_back agrega un elemento al final
Capacidad: pop_back elimina el último elemento
size regresa el tamaño insert inserta elementos
max_size regresa el tamaño máximo erase borra elementos
resize cambia el tamaño intercambia el contenido de
swap
vectores
regresa la capacidad de
capacity clear limpia el contenido
almacenamiento
Tuesday, May 8, 18
Contenedores secuenciales: vector
Tuesday, May 8, 18
Contenedores secuenciales: vector
Tuesday, May 8, 18
Contenedores
secuenciales: vector
Tuesday, May 8, 18
Contenedores
secuenciales: vector
Tuesday, May 8, 18
Contenedores secuenciales: vector
Tuesday, May 8, 18
Contenedores secuenciales: vector
Tuesday, May 8, 18
Contenedores secuenciales: deque
Tuesday, May 8, 18
Contenedores secuenciales: deque
• double-ended-queue.
Tuesday, May 8, 18
Contenedores secuenciales: deque
• double-ended-queue.
Tuesday, May 8, 18
Contenedores secuenciales: deque
• double-ended-queue.
Tuesday, May 8, 18
Contenedores secuenciales: deque
• double-ended-queue.
Tuesday, May 8, 18
Contenedores secuenciales: deque
• double-ended-queue.
Tuesday, May 8, 18
Contenedores secuenciales: deque
• double-ended-queue.
Tuesday, May 8, 18
Contenedores secuenciales: deque
• double-ended-queue.
Tuesday, May 8, 18
Contenedores secuenciales: deque
Tuesday, May 8, 18
Contenedores secuenciales: deque
Tuesday, May 8, 18
Contenedores secuenciales: list
Tuesday, May 8, 18
Contenedores secuenciales: list
Tuesday, May 8, 18
Contenedores secuenciales: list
Tuesday, May 8, 18
Contenedores secuenciales: list
Tuesday, May 8, 18
Contenedores secuenciales: list
Tuesday, May 8, 18
Contenedores secuenciales: list
Tuesday, May 8, 18
Contenedores secuenciales: list
Tuesday, May 8, 18
Contenedores secuenciales: list
Tuesday, May 8, 18
Contenedores secuenciales: list
Tuesday, May 8, 18
Adaptadores de contenedores: stack
Tuesday, May 8, 18
Adaptadores de contenedores: stack
• LIFO
Tuesday, May 8, 18
Adaptadores de contenedores: stack
• LIFO
Tuesday, May 8, 18
Adaptadores de contenedores: stack
• LIFO
Tuesday, May 8, 18
Adaptadores de contenedores: stack
• LIFO
Tuesday, May 8, 18
Adaptadores de contenedores: stack
• LIFO
Tuesday, May 8, 18
Adaptadores de contenedores: stack
• LIFO
Tuesday, May 8, 18
Adaptadores de contenedores: stack
• LIFO
• Aplicaciones:
Tuesday, May 8, 18
Adaptadores de contenedores: stack
• LIFO
• Aplicaciones:
Tuesday, May 8, 18
Adaptadores de contenedores: stack
• LIFO
• Aplicaciones:
Tuesday, May 8, 18
Adaptadores de contenedores: stack
Tuesday, May 8, 18
Adaptadores de contenedores: stack
Tuesday, May 8, 18
Adaptadores de contenedores: queue
Tuesday, May 8, 18
Adaptadores de contenedores: queue
• cola FIFO
Tuesday, May 8, 18
Adaptadores de contenedores: queue
• cola FIFO
Tuesday, May 8, 18
Adaptadores de contenedores: queue
• cola FIFO
Tuesday, May 8, 18
Adaptadores de contenedores: queue
• cola FIFO
• template < class T, class Container = deque <T> > class queue;
Tuesday, May 8, 18
Adaptadores de contenedores: queue
• cola FIFO
• template < class T, class Container = deque <T> > class queue;
• Aplicaciones:
Tuesday, May 8, 18
Adaptadores de contenedores: queue
• cola FIFO
• template < class T, class Container = deque <T> > class queue;
• Aplicaciones:
Tuesday, May 8, 18
Adaptadores de contenedores: priority_queue
Tuesday, May 8, 18
Adaptadores de contenedores: priority_queue
Tuesday, May 8, 18
Adaptadores de contenedores: priority_queue
Tuesday, May 8, 18
Adaptadores de contenedores: priority_queue
Tuesday, May 8, 18
Adaptadores de contenedores: priority_queue
Tuesday, May 8, 18
Adaptadores de contenedores: priority_queue
Tuesday, May 8, 18
Adaptadores de contenedores: priority_queue
Tuesday, May 8, 18
Adaptadores de contenedores: priority_queue
Tuesday, May 8, 18
Adaptadores de contenedores: priority_queue
Tuesday, May 8, 18
Adaptadores de contenedores: priority_queue
• No usan iteradores
Tuesday, May 8, 18
Adaptadores de contenedores: priority_queue
• No usan iteradores
• la función miembro pop() regresa el objeto prioritario mientras que top() solo
regresa un apuntador hacia él.
Tuesday, May 8, 18
Adaptadores de contenedores: priority_queue
• No usan iteradores
• la función miembro pop() regresa el objeto prioritario mientras que top() solo
regresa un apuntador hacia él.
• Aplicaciones:
Tuesday, May 8, 18
Adaptadores de contenedores: priority_queue
• No usan iteradores
• la función miembro pop() regresa el objeto prioritario mientras que top() solo
regresa un apuntador hacia él.
• Aplicaciones:
Tuesday, May 8, 18
Adaptadores de contenedores: priority_queue
• No usan iteradores
• la función miembro pop() regresa el objeto prioritario mientras que top() solo
regresa un apuntador hacia él.
• Aplicaciones:
• pacientes de un hospital.
Tuesday, May 8, 18
Alonso Ramírez Manzanares Computación y Algoritmos 11.05
Tuesday, May 8, 18
Alonso Ramírez Manzanares Computación y Algoritmos 11.05
Tuesday, May 8, 18
Contenedores de bits
Tuesday, May 8, 18
Contenedores de bits
Tuesday, May 8, 18
Contenedores de bits
Tuesday, May 8, 18
Contenedores de bits
Tuesday, May 8, 18
Contenedores de bits
Tuesday, May 8, 18
Contenedores de bits
Tuesday, May 8, 18
Contenedores asociativos
Tuesday, May 8, 18
Contenedores asociativos
Tuesday, May 8, 18
Contenedores asociativos
Tuesday, May 8, 18
Contenedores asociativos
• set y multiset solo contienen valores ( en este caso son iguales que la llave )
Tuesday, May 8, 18
Contenedores asociativos
• set y multiset solo contienen valores ( en este caso son iguales que la llave )
Tuesday, May 8, 18
Contenedores asociativos
• set y multiset solo contienen valores ( en este caso son iguales que la llave )
Tuesday, May 8, 18
Contenedores asociativos
Tuesday, May 8, 18
Contenedores asociativos
Tuesday, May 8, 18
Contenedores asociativos
Tuesday, May 8, 18
Contenedores asociativos
Tuesday, May 8, 18
Contenedores asociativos
Tuesday, May 8, 18
Contenedores asociativos: set
Tuesday, May 8, 18
Contenedores asociativos: set
Tuesday, May 8, 18
Contenedores asociativos: set
Tuesday, May 8, 18
Contenedores asociativos: set
Tuesday, May 8, 18
Contenedores asociativos: set
Tuesday, May 8, 18
Contenedores asociativos: set
Tuesday, May 8, 18
Contenedores asociativos: set
Tuesday, May 8, 18
Contenedores asociativos: set
Tuesday, May 8, 18
Contenedores asociativos: set
Tuesday, May 8, 18
Contenedores asociativos: set
Tuesday, May 8, 18
Contenedores asociativos: set
Tuesday, May 8, 18
Contenedores asociativos: set
Tuesday, May 8, 18
Contenedores asociativos: set
Tuesday, May 8, 18
Contenedores asociativos: set
Tuesday, May 8, 18
Contenedores asociativos: set
Tuesday, May 8, 18
Contenedores asociativos: set
Tuesday, May 8, 18
Contenedores asociativos: set
Tuesday, May 8, 18
Contenedores asociativos: set
Tuesday, May 8, 18
Contenedores asociativos: set
• si ya está, dejarla
Tuesday, May 8, 18
Contenedores asociativos: set
• si ya está, dejarla
Tuesday, May 8, 18
Contenedores asociativos: set
Tuesday, May 8, 18
Contenedores asociativos: set
Tuesday, May 8, 18
Contenedores asociativos: multiset
Tuesday, May 8, 18
Contenedores asociativos: multiset
Tuesday, May 8, 18
Contenedores asociativos: multiset
Tuesday, May 8, 18
Contenedores asociativos: multiset
Tuesday, May 8, 18
Contenedores asociativos: multiset
Text
Tuesday, May 8, 18
Contenedores asociativos: multiset
Text
Tuesday, May 8, 18
Contenedores asociativos: map
Tuesday, May 8, 18
Contenedores asociativos: map
Tuesday, May 8, 18
Contenedores asociativos: map
Tuesday, May 8, 18
Contenedores asociativos: map
Tuesday, May 8, 18
Contenedores asociativos: map
Tuesday, May 8, 18
Contenedores asociativos: map
• Están diseñados para ser eficientes obteniendo sus elementos por una llave.
Tuesday, May 8, 18
Contenedores asociativos: map
• Están diseñados para ser eficientes obteniendo sus elementos por una llave.
Tuesday, May 8, 18
Contenedores asociativos: map
Tuesday, May 8, 18
Contenedores asociativos: map
Tuesday, May 8, 18
Contenedores asociativos: map
Tuesday, May 8, 18
Contenedores asociativos: map
Tuesday, May 8, 18
Contenedores asociativos: map
Tuesday, May 8, 18
Contenedores asociativos: map
Tuesday, May 8, 18
Contenedores asociativos: map
Tuesday, May 8, 18
Contenedores asociativos: map
Tuesday, May 8, 18
Contenedores asociativos: map
Tuesday, May 8, 18
Contenedores asociativos: map
Tuesday, May 8, 18
Contenedores asociativos: map
Tuesday, May 8, 18
Contenedores asociativos: multimap
Tuesday, May 8, 18
Alonso Ramírez Manzanares Computación y Algoritmos 11.05
Tuesday, May 8, 18
Contenedores asociativos: extensiones
Tuesday, May 8, 18
Contenedores asociativos: extensiones
Tuesday, May 8, 18
Contenedores asociativos: extensiones
• En este caso las llaves no están ordenadas pero debe existir una función de
hash para cada tipo de llave.
Tuesday, May 8, 18
Contenedores asociativos: extensiones
• En este caso las llaves no están ordenadas pero debe existir una función de
hash para cada tipo de llave.
Tuesday, May 8, 18
Contenedores asociativos: extensiones
• En este caso las llaves no están ordenadas pero debe existir una función de
hash para cada tipo de llave.
Tuesday, May 8, 18
Alonso Ramírez Manzanares Computación y Algoritmos 11.05
Tuesday, May 8, 18
Referencias
• http://www.cplusplus.com/reference/stl
• http://www.java2s.com/Code/Cpp/CatalogCpp.htm
• http://www.mochima.com/tutorials/STL.html
• http://www.sgi.com/tech/stl/HashedAssociativeContainer.html
Tuesday, May 8, 18