swap
Exchanges the values of the elements between two types of objects
Key Facts
Gyroscopic Couple: The rate of change of angular momentum () = (In the limit).- = Moment of Inertia.
- = Angular velocity
- = Angular velocity of precession.
Blaise Pascal (1623-1662) was a French mathematician, physicist, inventor, writer and Catholic philosopher.
Leonhard Euler (1707-1783) was a pioneering Swiss mathematician and physicist.
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 |
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
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