STL


Template

A template is a set of files (usually a pair of files: MyTemplate.h and MyTemplate.cpp) where there are some fields that can be dynamically replaced.
Una plantilla es un conjunto de archivos (usualmente un par de archivos: MiPlantilla.h y MiPlantilla.cpp) donde hay algunos campos que pueden remplazarse en forma dinámica.

Standard Template Library (STL)

The Standard Template Library is collection of templates that were designed to manage data. The STL is extremely flexible because it provides general purpose code and functions by implement many popular and commonly used algorithms. wstring is one of the templates from the STL that we have been using. wstring encapsulates wchar_t, while string encapsulates char. Because the STL is based on templates, their algorithms and data structures can greatly simplify the creation of programs. The STL has three types of elements as shown in the figure below: containers, algorithms and iterators
La Librería de Plantillas Estándar (STL) es una colección de plantillas que fue diseñada para manejar datos. La STL es extremadamente flexible porque proporciona código y funciones de propósito general implementando muchos algoritmos populares y comunmente usados. wstring es una de la plantillas de la STL que hemos venido utilizando. wstring encapsula wchar_t, mientras que string encapsula char. Debido a que la STL está basada en plantillas, sus algoritmos y sus estructuras de datos pueden simplificar grandemente la creación de programas. La STL tiene tres tipos de elementos como se muestra en la figura: contenedores, algoritmos e iteradores.

Stl

Containers

A container is an object that can hold other objects. The STL includes the following containers:
  1. vector (generic array)
  2. list (elements can be sequentially accessed)
  3. queue (input in one side, output at the other side)
  4. dqueue (double queue, input and output in both sides)
  5. stack
  6. wstring and string (to manage text)
  7. valarray (numeric array)
  8. tupple (array of several data types)
  9. priority_queue
  10. set (unique elements)
  11. map (maps from one data to another)
  12. multiset
  13. multimap

Un contenedor es un objeto que puede tener dentro de él otros objetos. La STL incluye los siguientes contenedores:
  1. vector (arreglo genérico)
  2. list (lista, los elementos se accesan en secuencia)
  3. queue (cola: entran por un lado y salen por el otro)
  4. dqueue (cola doble: entran y salen por los dos lados)
  5. stack (pila, se puede meter y sacar por un lado)
  6. wstring y string (para manejar texto)
  7. valarray (arreglos numéricos)
  8. tupple (arreglo de elementos distintos)
  9. priority_queue (entran y salen los influyentes)
  10. set (no hay elementos repetidos)
  11. map (mapea de un dato a otro)
  12. multiset
  13. multimap

Algorithm

An algorithm is used to manipulate the objects that are in a container. They are used to: sort, search, count, transform, etc.
Un algoritmo es usado para manipular los objetos que se encuentran en el contenedor. Estos son usados para: ordenar, buscar, contar, transformar, etc.

Iterator

An iterator is similar to a pointer. They are used to cycle through the objects (data) of a container.
Un iterador es similar a un puntero. Estos se usan para hacer un recorrido por todos los objetos dentro de un contenedor.

Tip
Once a STL template has been used, using another template is straightforward. The table below summarizes some of the functions used in the templates.
Una vez que una plantilla de la STL ha sido usada, usar otra plantilla es muy fácil. La tabla de abajo resume algunas de las funciones usadas en las plantillas.

Name    Description  
.size()Returns the number of objects in the container
.resize(100)Changes the size of the container
.begin()Indicates the first object in the container
.end()Indicates of position after the last object in the container
.erase()Deletes one or more object in the container
.clear()Deletes all objects in the container
.max_size()Returns the maximum number of objects that can be stored
.reserve(100)Reserve a space for 100 elements to improve performance
.empty()Returns true when it is empty

Nombre    Descripción  
.size()Regresa el número de objetos en el contenedor
.resize(100)Cambia el tamaño del contenedor
.begin()Indica el primer objeto en el contenedor
.end()Indica una posición después del último objeto en el contenedor
.erase()Borra uno o más objetos del contenedor
.clear()Elimina todos los objetos del contenedor
.max_size()Regresa el número máximo de objetos que pueden ser almacenados
.reserve(100)Reserva un espacio para 100 elementos para mejorar el desempeño
.empty() Regresa true cuando este está vacío

© Copyright 2000-2021 Wintempla selo. All Rights Reserved. Jul 22 2021. Home