Man Page iter_swap.3



                       Standard C++ Library
             Copyright 1998, Rogue Wave Software, Inc.



NAME

     iter_swap

      - Exchanges values in two locations.





SYNOPSIS

     #include <algorithm>
     template <class ForwardIterator1, class ForwardIterator2>
     void iter_swap (ForwardIterator1, ForwardIterator2);





DESCRIPTION

     The iter_swap algorithm exchanges the values pointed  to  by
     the two iterators a and b.





EXAMPLE

     #include <vector>
     #include <algorithm>
     #include <iostream>
     using namespace std;

     int main ()
      {
       int d1[] = {6, 7, 8, 9, 10, 1, 2, 3, 4, 5};
        //
        // Set up a vector.
        //
       vector<int> v(d1+0, d1+10);
        //
        // Output original vector.
        //
       cout << "For the vector: ";
       copy(v.begin(), v.end(),
            ostream_iterator<int,char>(cout," "));
        //
        // Swap the first five elements with the
        // last five elements.
        //
       swap_ranges(v.begin(), v.begin()+5, v.begin()+5);
        //
        // Output result.
        //
       cout << endl << endl
       << "Swapping the first 5 elements with the last 5 gives: "
             << endl << "     ";
       copy(v.begin(), v.end(),
            ostream_iterator<int,char>(cout," "));
        //
        // Now an example of iter_swap -- swap first and
        // last elements.
        //
        iter_swap(v.begin(), v.end()-1);
        //
        // Output result.
        //
       cout << endl << endl
             << "Swapping the first and last elements gives: "
             << endl << "     ";
       copy(v.begin(), v.end(),
            ostream_iterator<int,char>(cout," "));
       cout << endl;

       return 0;
      }

     Program Output




     For the vector: 6 7 8 9 10 1 2 3 4 5
     Swapping the first five elements with the last five gives:
         1 2 3 4 5 6 7 8 9 10
     Swapping the first and last elements gives:
         10 2 3 4 5 6 7 8 9 1





WARNINGS

     If your compiler does not support default  template  parame-
     ters,  then you always need to supply the Allocator template
     argument. For instance, you have to write:

     vector<int, allocator<int> >

     instead of:

     vector<int>

     If your compiler does not support namespaces,  then  you  do
     not need the using declaration for std.


SEE ALSO

     Iterators, swap, swap_ranges