Clases de contenedores de C++<set>
En la biblioteca estándar de C++,<set>es un contenedor asociativo que almacena un conjunto de elementos únicos y los ordena siguiendo un cierto orden.
<set>Proporciona operaciones eficientes de búsqueda, inserción y eliminación de elementos. Está implementado sobre un árbol rojo-negro, por lo que tiene un rendimiento de búsqueda, inserción y eliminación de complejidad logarítmica.
<set>El tipo de elemento almacenado en el contenedor debe cumplir las siguientes condiciones:
- El tipo de elemento debe poder compararse por tamaño.
- El tipo de elemento debe poder copiarse y asignarse.
Sintaxis
Incluir el archivo de cabecera:
#include <set>
Declarar un contenedor set
std::set<元素类型> 容器名;
Operaciones comunes
insert(元素): insertar un elemento.erase(元素): eliminar un elemento.find(元素): buscar un elemento.size(): devuelve el número de elementos del contenedor.empty(): comprueba si el contenedor está vacío.
Ejemplo
A continuación se muestra un<set>ejemplo simple de uso de <set>, que incluye la inserción, búsqueda, eliminación de elementos y la salida de resultados.
Ejemplo
#include <set>
int main() {
// Declarar un contenedor set de enteros
std::set<int> mySet;
// Insertar elementos
mySet.insert(10);
mySet.insert(20);
mySet.insert(30);
mySet.insert(40);
// Mostrar los elementos en set
std::cout << "Set contains: ";
for (int num : mySet) {
std::cout << num << " ";
}
std::cout << std::endl;
// Buscar elementos
if (mySet.find(20) != mySet.end()) {
std::cout << "20 is in the set." << std::endl;
} else {
std::cout << "20 is not in the set." << std::endl;
}
// Eliminar elementos
mySet.erase(20);
// Mostrar de nuevo los elementos en set
std::cout << "After erasing 20, set contains: ";
for (int num : mySet) {
std::cout << num << " ";
}
std::cout << std::endl;
// Comprobar si set está vacío
if (mySet.empty()) {
std::cout << "The set is empty." << std::endl;
} else {
std::cout << "The set is not empty." << std::endl;
}
// Mostrar el número de elementos en set
std::cout << "The set contains " << mySet.size() << " elements." << std::endl;
return 0;
}
Resultado de salida:
Set contains: 10 20 30 40 20 is in the set. After erasing 20, set contains: 10 30 40 The set is not empty. The set contains 3 elements.
Resumen
<set>es un contenedor muy útil en la biblioteca estándar de C++, especialmente adecuado para escenarios que requieren búsqueda, inserción y eliminación rápidas. A través de los ejemplos anteriores, los principiantes pueden<set>tener una comprensión clara del uso básico. En el desarrollo real, el uso racional de<set>puede mejorar la eficiencia y legibilidad del programa.