VMS Help
CXXLSTD, Algorithms, swap_ranges

 *Conan The Librarian

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

 NAME

   swap_ranges  - Exchange a range of values in one location with those in
   another

 SYNOPSIS

   #include <algorithm>

   template <class ForwardIterator1, class ForwardIterator2>
   ForwardIterator2 swap_ranges (ForwardIterator1 first1,
 			       ForwardIterator1	last1,
 			       ForwardIterator2	first2);

 DESCRIPTION

   The swap_ranges algorithm exchanges corresponding values in two
   ranges, in the following	manner:

   For each non-negative	integer	n < (last - first) the function
   exchanges *(first1 + n)	with *(first2 +	n)).  After completing
   all exchanges, swap_ranges returns an iterator that points to the
   end of the	second container, i.e.,	first2 + (last1
   -first1).  The result of swap_ranges is	undefined	if the
   two ranges [first, last)	and [first2, first2 + (last1 -
   first1)) overlap.

 EXAMPLE

   //
   // swap.cpp
   //
    #include <vector>
    #include <algorithm>

   int main()
    {
     int	d1[] = {6, 7, 8, 9, 10,	1, 2, 3, 4, 5};

      //	Set up a vector
     vector<int>	v(d1,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 five elements "
 	  << "with the last five gives:	"
 	  << endl << "	   ";
     copy(v.begin(),v.end(),ostream_iterator<int,char>(cout," "));

     return 0;
    }

   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

 WARNING

   If your compiler does	not support default template parameters, you
   need to always supply	the Allocator template argument. For instance,
   you will	need to write :

   vector<int, allocator<int> >

   instead of :

   vector<int>

 SEE ALSO

   iter_swap, swap

 STANDARDS CONFORMANCE
   ANSI X3J16/ISO WG21 Joint C++	Committee
  Close     Help