
Algorithm
Exchange values pointed at in two locations
#include <algorithm>
template <class ForwardIterator1, class ForwardIterator2> void iter_swap (ForwardIterator1, ForwardIterator2);
The iter_swap algorithm exchanges the values pointed at by the two iterators a and b.
#include <vector>
#include <algorithm>
#include <iostream.h>
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>(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
<< "Swaping the first 5 elements with the last 5 gives: "
<< endl << " ";
copy(v.begin(), v.end(), ostream_iterator<int>(cout," "));
//
// Now an example of iter_swap -- swap first and last elements.
//
iter_swap(v.begin(), v.end()-1);
//
// Output result.
//
cout << endl << endl
<< "Swaping the first and last elements gives: "
<< endl << " ";
copy(v.begin(), v.end(), ostream_iterator<int>(cout," "));
cout << endl;
return 0;
}
Output :
For the vector: 6 7 8 9 10 1 2 3 4 5
Swaping the first five elements with the last five gives:
1 2 3 4 5 6 7 8 9 10
Swaping the first and last elements gives:
10 2 3 4 5 6 7 8 9 1
If your compiler does not support default template parameters, then you will need to always supply the Allocator template argument. For instance, you'll have to write :
vector<int, allocator>
instead of :
vector<int>