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 <iostream>
#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.

Otras extensiones