set::swap, set::begin, e set::end

Ilustra como usar o set::swap, set::begin, and set::end funções de biblioteca STL (Standard Template) no Visual C++.

template<class _K, class _Pr, class _A>
   class set
   {
      public:
      // Function 1:
      void swap(_Myt& _X);
      // Function 2:
      friend void swap(_Myt& _X, _Myt& _Y);
      // Function 3:
      const_iterator begin( ) const;
      // Function 4:
      const_iterator end( ) const;
   }

Comentários

ObservaçãoObservação

Nomes de classe/parâmetro o protótipo não coincidem com a versão no arquivo de cabeçalho.Alguns foram modificados para melhorar a legibilidade.

O swap função troca as duas seqüências controladas.O começar função retorna um iterador bidirecional que apontasse no primeiro elemento da seqüência.O final função retorna um iterador bidirecional que apontasse pouco além do final da seqüência.

Exemplo

// SetSwapBeginEnd.cpp
// compile with: /EHsc
//
//      Illustrates how to use the swap function to exchange the two
//      controlled sequences. It also illustrates how to use the
//      begin function to get a bidirectional iterator that points at
//      the first element of the controlled sequence. Finally, it
//      illustrates how to use the end function to get a bidirectional
//      iterator that points just beyond the end of the controlled
//      sequence.
//
// Functions:
//
//    swap        Exchanges the two controlled sequences.
//    begin       Returns a bidirectional iterator that points at the
//                first element of the controlled sequence.
//    end         Returns a bidirectional iterator that points just
//                beyond the end of the controlled sequence.
//
//////////////////////////////////////////////////////////////////////

#pragma warning(disable:4786)
#include <set>
#include <iostream>

using namespace std ;

typedef set<int> SET_INT;

int main() {
  SET_INT s1;
  SET_INT s2;
  SET_INT::iterator i;
  cout << "s1.insert(5)" << endl;
  s1.insert(5);
  cout << "s1.insert(10)" << endl;
  s1.insert(10);
  cout << "s1.insert(15)" << endl;
  s1.insert(15);
  cout << "s2.insert(2)" << endl;
  s2.insert(2);
  cout << "s2.insert(4)" << endl;
  s2.insert(4);

  cout << "swap(s1,s2)" << endl;
  swap(s1,s2);

  // Displays: 2,4
  for (i=s1.begin();i!=s1.end();i++)
     cout << "s1 has " << *i << " in its set." << endl;

  // Displays: 5,10,15
  for (i=s2.begin();i!=s2.end();i++)
     cout << "s2 has " << *i << " in its set." << endl;

  cout << "s1.swap(s2)" << endl;
  s1.swap(s2);

  // Displays: 5,10,15
  for (i=s1.begin();i!=s1.end();i++)
     cout << "s1 has " << *i << " in its set." << endl;

  // Displays: 2,4
  for (i=s2.begin();i!=s2.end();i++)
     cout << "s2 has " << *i << " in its set." << endl;
}

Saída

s1.insert(5)
s1.insert(10)
s1.insert(15)
s2.insert(2)
s2.insert(4)
swap(s1,s2)
s1 has 2 in its set.
s1 has 4 in its set.
s2 has 5 in its set.
s2 has 10 in its set.
s2 has 15 in its set.
s1.swap(s2)
s1 has 5 in its set.
s1 has 10 in its set.
s1 has 15 in its set.
s2 has 2 in its set.
s2 has 4 in its set.

Requisitos

Cabeçalho: <set>

Consulte também

Conceitos

Exemplos de biblioteca de modelo padrão