Поделиться через


set::swap, set::begin, и set::end

Демонстрируется использование набор:: обмен,набор:: begin, andнабор:: end Стандартные функции библиотеки стандартных шаблонов (STL) в 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;
   }

Заметки

ПримечаниеПримечание

Имена класса и параметра в прототипе не соответствует версии в файле заголовка.Некоторые были изменены для улучшения удобочитаемости.

swap функция передает 2 контролируемых последовательности. Begin функция получает двунаправленный итератор, который указывает на первом элементе последовательности. End функция получает двунаправленный итератор, который указывает конец последовательности.

Пример

// 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;
}

Output

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.

Требования

заголовок:<установка>

См. также

Основные понятия

Образец библиотеки стандартных шаблонов