#include <iostream>
#include <set>

int main( ) {
   std::set<int> conjunto;
   conjunto.insert(5);
   conjunto.insert(7);
   conjunto.insert(2);
   conjunto.insert(8);
   conjunto.insert(7);     // no se insertará (ya hay un 7)
   conjunto.insert(9);
   conjunto.insert(1);

   std::cout << conjunto.size( ) << " elementos \n";
   for (int i = 0; i <= 10; ++i) {
      std::cout << "buscando el " << i << ": " << conjunto.contains(i) << "\n";
   }

   conjunto.erase(7);

   std::cout << conjunto.size( ) << " elementos \n";
   for (int i = 0; i <= 10; ++i) {
      std::cout << "buscando el " << i << ": " << conjunto.contains(i) << "\n";
   }

   std::cout << "------\n";

   for (int valor : conjunto) {
      std::cout << valor << " ";
   }
   std::cout << "\n";

   // auto es std::set<int>::iterator
   for (auto it = conjunto.begin( ); it != conjunto.end( ); ++it) {
      int valor = *it;
      std::cout << valor << " ";
   }
   std::cout << "\n";
}
