Red de conocimiento informático - Problemas con los teléfonos móviles - El concepto de contenedor de recolección y el funcionamiento del contenedor STLset

El concepto de contenedor de recolección y el funcionamiento del contenedor STLset

Esta es la explicación de set en el documento de ayuda de Microsoft: "Describe una clase de plantilla que controla un objeto de secuencia de elementos de longitud variable (nota: la clave y el valor en set son tipos de clave, mientras que la clave y el valor en map son dos en el componente de estructura de par), cada elemento contiene una clave de clasificación y un valor. Puede buscar, insertar y eliminar cualquier elemento en esta secuencia. El tiempo para completar estas operaciones es proporcional al logaritmo del número de elementos en esta secuencia. el cursor apunta a un elemento eliminado. La operación de eliminación no es válida cuando el elemento es ”

Una definición revisada y más práctica debería ser: una colección es un contenedor en el que el valor de los elementos es único. Esto es útil al recopilar valores de datos específicos. Los elementos de una colección están dispuestos en un orden determinado y sirven como instancias de la colección. Si necesita un par clave/valor para almacenar datos, el mapa es una mejor opción. Los conjuntos se organizan mediante listas enlazadas, que son más rápidas que los vectores para operaciones de inserción y eliminación, pero un poco más lentas para buscar o agregar el último elemento. //Programa: Demostración de configuración

//Propósito: Comprender las colecciones en STL.

# incluir ltiostream gt# incluir ltcstdio gt# incluir ltcstring gt# incluir ltcmath gt# incluir ltcstdlib gt# incluir lt algoritmo gt# incluir ltvector gt# incluir lt pila gt# incluir lt cola gt# incluir ltsstream gt # incluir ltset gt usando el espacio de nombres stdint main(int argc, char * argv[]) { set lt; string gt strset set lt string gt * iterator si; (naranja); strset.insert(plátano); strset . insert(uvas . insert(uvas); si ) { cout lt; lt* si lt lt; } cout lt ltendl return 0;

//Salida: Manzana Plátano Melón Uva Naranja

//Nota: Los elementos del conjunto de salida están ordenados en orden alfabético, cada valor es único.

Si está interesado, puede reemplazar el bucle de salida con el siguiente código:

copy(strset.begin(), strset.end(), ostream_iterator lt string gt(cout ,));

Aunque es bastante poderoso, personalmente siento que es un poco confuso y es más fácil cometer errores. Si comprende esto, sabrá lo que puede hacer con este televisor.