[STL] contenedores STL cada uno características comunes, contenedores STL cada ocasión, contenedores STL mecanismo común, deque, pila, cola

La comparación de la STL deque, pila, cola, lista, Set, Mapa características de cada contenedor, utilizando la oportunidad para resumir los mecanismos comunes para facilitar la utilización de contenedores en el futuro.
Siente esta clasificación STL de cada blog le permitirá comprender y utilizar la casi totalidad de los fundamentos de la SLT.

A, contenedores STL cada uno características comunes

(1) matriz deque de doble extremo

Operando características: eficiencia relativamente alta en ambos extremos de la pieza de inserción y eliminar, insertar en la ubicación especificada, puede también la causa de los elementos de datos de desplazamiento, el apoyo de acceso aleatorio. (Con menos)
la trozos deque espacio de memoria continuo

(2) contenedor de pila

Reglas: ;; no pueden atravesar el último en salir, no proporciona un iterador no admite el acceso aleatorio.

While(!stack.empty()){
		Cout<<stack.top()<<endl;
		Stack.pop();
}

(3) Cola de la cola

Regla: FIFO
no puede travesía, no proporciona un iterador no admite el acceso aleatorio

While(!queue。empty()){
		Cout<<queue.frout()<<endl;
		Queue.pop();
}

(4) una lista de un recipiente

STL es muy común en ambos sentidos lista enlazada
inserciones en cualquier lugar y eficiencia supresiones son mejores, debido a inserciones y deleciones en relación con la matriz, cuando no es necesario mover elementos
Desventajas: no admite el acceso aleatorio. espacio de memoria no contiguas, de modo que a fin de preservar la relación entre predecesor y sucesor nodos y los nodos necesitan proporcionar espacio adicional encima de la cabeza
proporciona un método de su propio sort (), y por qué? Debido a que no son compatibles con acceso aleatorio, si se utiliza un algoritmo para mejorar el nivel de especie, la eficiencia será inestable.
Encuentra () que tiene que saber para encontrar el tipo de datos subyacente, encontrar el objeto, proporcionando una devolución de llamada (condición)

(5) par de grupos

Los dos valores en un valor

Pair<string,int>pair1;
Make_pair(“aaa”,1);
Pair3=pair1;

Aquí Insertar imagen Descripción

Dos, oportunidad contenedores STL

(1) Vector de uso de escenarios:

Tales como software de almacenamiento de registro histórico de operaciones, muchas veces queremos ver el historial, como el último registro, el último registro, pero no a los registros de eliminación debido a que los registros están hechos descritos.

(2) Deque escenarios de uso:

Entradas tales como sistemas de colas, la memoria se pueden emplear para alinear el deque, apoyar la eliminación rápida del extremo de la cabeza, de forma rápida añadir el extremo posterior. Si se utiliza Vector, retire el extremo de la cabeza, se moverá grandes cantidades de datos, lento.

Comparación de vector y el deque

1 "vector.at () () mayor que deque.at eficiencia, tales vector.at (0) Se fija, pero sí la posición de inicio no es fijo.
2 "Si una operación de liberación grande, entonces, vector pasan menos tiempo con la que tanto depende de la implementación interna.
3 "Deque admite la inserción rápida y la eliminación rápida de la cabeza, que es una ventaja de deque

(3) Lista de escenarios de uso:

Por ejemplo, el almacenamiento pasajeros del autobús, puede haber pasajeros a bajar en cualquier momento, eliminar el soporte con frecuencia posición incierta del elemento insertado.

(4) Conjunto escenarios de uso:

Por ejemplo almacenamiento secuencial, los requisitos de almacenamiento del registro de puntuación juego de puntos individuales móviles en orden descendente.

(5) Mapa escenarios de uso:

Por ejemplo, al número almacenado ID miles de usuarios, que desea encontrar rápidamente el usuario correspondiente por ID.
Encuentra la eficiencia de un árbol binario, entonces se manifiesta. Si el recipiente es un vector, en el peor caso posible atravesar el recipiente lleno de localizar al usuario.

Tres, contenedores STL mecanismo común

valor STL se proporcionan por el contenedor (valor) que significa, en lugar de por referencia (referencia) significado , es decir cuando inserto elemento al contenedor cuando la operación interna copia envase implementado, que será de nuevo un elemento insertado copia separada un colocan en un recipiente, en lugar de elementos de metadatos directamente en el recipiente, es decir los elementos que ofrecemos debe ser capaz de ser copiado.
Si el objeto no está dentro de un tipo de puntero, entonces la configuración predeterminada, el valor de la copia directa
si hay objetos de tipo puntero, entonces la necesidad de escribir su propio constructor de copia, y volver a cargar el signo igual (=)


(1) Además de la cola y Stack, cada recipiente proporciona la función devuelve un iterador, utilizando el iterador devuelto para acceder al elemento.
(2) generalmente no lanzar una STL excepción, las necesidades de los usuarios para pasar los parámetros correctos
(3) cada recipiente proporciona un constructor predeterminado y predeterminado constructor de copia
(4) en relación con el tamaño de la constructor: 1 "tamaño () devuelve el número de elementos en el recipiente; 2 "eMPTY () determina si el recipiente está vacío.

Publicado 57 artículos originales · ganado elogios 28 · vistas 4123

Supongo que te gusta

Origin blog.csdn.net/weixin_41747893/article/details/102959517
Recomendado
Clasificación