I have forgotten
my Password

Or login with:

  • Facebookhttp://facebook.com/
  • Googlehttps://www.google.com/accounts/o8/id
  • Yahoohttps://me.yahoo.com

//

Exchanges the values of the elements between two types of objects

Definition

The swap() algorithm is defined in the standard header <algorithm> and in the nonstandard backward-compatibility header <algo.h>.

Interface

#include <algorithm>
template <class Type>
   void swap(
      Type& left, 
      Type& right
   );

Parameters:
Parameter Description
left The first object to have its elements exchanged
right The second object to have its elements exchanged

Description

Swap assigns the contents of left to right and the contents of right to left.

Return Value

None.

Complexity

Swap algorithm has a constant complexity. It performs one copy construction and two assignments.

Example:

Example - swap algorithm
Problem
This program illustrates the functionality of swap algorithm.
Workings
#include <vector>
#include <algorithm>
#include <iostream>
 
using namespace std;
 
bool greaterthan(int value)
{  return value > 5;
}
 
int main()
{
  vector <int> vec1, vec2;
  vector <int>::iterator Iter1, Iter2, result;
  int i;
  for (i = 10; i<= 20; i++)
    vec1.push_back(i);
  int j;
  for(j = 10; j <= 15; j++)
    vec2.push_back(j);
  cout<<"Vector vec1 data is:\n";
  for(Iter1 = vec1.begin(); Iter1 != vec1.end(); Iter1++)
    cout <<*Iter1<<" ";
  cout <<endl;
  cout <<"\nVector vec2 data is:\n";
  for (Iter2 = vec2.begin(); Iter2 != vec2.end(); Iter2++)
    cout<<*Iter2<<" ";
  cout <<endl;
  swap(vec1, vec2);
  cout <<"\nNow, vector vec1 data is:\n";
  for(Iter1 = vec1.begin(); Iter1 != vec1.end(); Iter1++)
    cout <<*Iter1<<" ";
  cout <<endl;
  cout <<"\nThen, vector vec2 data is:\n";
  for (Iter2 = vec2.begin(); Iter2 != vec2.end(); Iter2++)
    cout <<*Iter2<<" ";
  cout <<endl;
 
  return 0;
}
Solution
Output:

Vector vec1 data is:
10 11 12 13 14 15 16 17 18 19 20

Vector vec2 data is:
10 11 12 13 14 15

Now, vector vec1 data is:
10 11 12 13 14 15

Then, vector vec2 data is:
10 11 12 13 14 15 16 17 18 19 20
References