×

swap() function in C++

Swap() function:

swap() function in C++:

swap() function is a pre-define function in c++ present in STL( Standard template library ). It is used to swap two numbers. It takes two mandatory parameters, which can be of any data type. swap() function does not return any value.

Syntax of  swap() function c++:

swap(a, b);

a and b can be any type.

Advantages of swap() function:

  1. No need for a third variable.
  2. swap function will reduce lines of code.
  3. Memory is saved.

Example program to swap two numbers using swap function.

// C++ program for swapping of two numbers using swap() function
#include <bits/stdc++.h>
using namespace std;
int main()
{
  int x, y;
  cout << " Enter the value of x: " ;
  cin >> x; // reading x value
  cout << " Enter the value of y: " ;
  cin >> y; // reading y value
// printing the values before swapping 
  cout << "Value of x before swapping: " << x << endl;
  cout << "Value of y before swapping: " << y << endl;
  // swap values of the variables
  swap(x, y); // function call
  // printing the values after swapping
  cout << "Value of x after swapping: " << x << endl;
  cout << "Value of y after swapping: " << y << endl;
  return 0;
}

Output:

Enter the value of x: 50
Enter the value of y: 60
Value of x before swapping: 50
Value of y before swapping: 60
Value of x after swapping: 60
Value of y after swapping: 50

Example program to swap two strings using swap() function in C++:

// program to swap two strings using swap() function
#include <bits/stdc++.h>
using namespace std;
int main()
{
  string str1, str2; // declaring the strings
  cout << " Enter the string str1: " ;
  cin >> str1;  // reading str1
  cout << " Enter the string str2: " ;
  cin >> str2;  // reading str2
// printing the strings before swapping
  cout << " str1 string before swapping: " << str1 << endl;
  cout << " str2 string before swapping: " << str2 << endl;
  // swapping two strings
  swap(str1, str2); // function call
  // printing  the strings after swapping 
  cout << "str1 string before swapping: " << str1 << endl;
  cout << "str2 string before swapping: "<< str2 << endl;
  return 0;
}

Output:

Enter the string str1: JavaTpoint
Enter the string str2: Tutorials
str1 string before swapping: JavaTpoint
 str2 string before swapping: Tutorials
str1 string After swapping: Tutorials
str2 string After swapping: JavaTpoint

swap() function in C:

In C, we don't have any in-Build function to swap two numbers. User have to create the function to swap two numbers.

In C, we can swap two variables by taking the third variable, addition and subtraction, division etc. After creating a function, we can call that function in two ways.

  1. Call by value.
  2. Call by reference.

Example to create a swap function and call the function using call by value technique.

// C program to swap two numbers using third variable
#include<stdio.h>
int main()
{
    int x, y, temp;
    printf("Enter the Value of x: ");
    scanf("%d", &x);
    printf("\nEnter the Value of y: ");
    scanf("%d", &y);
    temp = x;
    x = y;
    y = temp;
    printf("\nAfter Swapping: x = %d", x);
    printf("\nAfter Swapping: y = %d, y);
    return 0;
}

Output:

Enter the value of x: 50
Enter the value of y: 60
After Swapping x = 60
After Swapping y = 50

Example program to swap two numbers in C using user define function:

// C program to swap two variables using third variable
#include <stdio.h>
void swap( int *a, int *b);
// This function swaps values by call by reference
int main()
{
  int x, y;
  printf(" Enter a value: ");
  scanf("%d", &x);
  printf("\nEnter b value: ");
  scanf("%d", &y);
  swap(&x, &y);
  printf(" \nAfter Swapping: x = %d", x);
  printf(" \nAfter Swapping: y = %d", y);
  return 0;
}
void swap(int *a, int *b)
{
  int temp = *a;
  *a = *b;
  *b = temp;
}

Output:

Enter a value: 100
Enter b value: 500
After Swapping: x = 500 
After Swapping: y = 100

Example program to swap two numbers without using third variable( addition and subtraction method)

// C program to swap two numbers without using a third variable
#include <stdio.h>
int main()
{
  int x, y; // variable declaration
  printf("Enter the x value: ");
  scanf(" %d", &x); // reading x value
  printf("Enter the y value: ");
  scanf(" %d", &y); // reading y value
  printf(" value of x Before swapping is: %d \nvalue of y before swapping is: %d ", x,y); //printing numbers before swapping
  // swapping logic starts
  x = x + y;
  y = x - y;
  x = x - y;
  printf(" \nvalue of x After swapping is: %d \nvalue of y After swapping is: %d ", x,y); //printing numbers after swapping
  return 0;
}

Output:

Enter the x value: 96
Enter the y value: 78
value of x Before swapping is: 96
value of y before swapping is: 78 
value of x After swapping is: 78
value of y After swapping is: 96

Example program to swap two numbers without using a third variable( using bitwise XOR operator)

// C program to swap two numbers without using a third variable
#include <stdio.h>
int main()
{
  int x, y; // variable declaration
  printf("Enter the x value: ");
  scanf(" %d", &x); // reading x value
  printf("  \nEnter the y value: ");
  scanf(" %d", &y); // reading y value
  printf(" value of x Before swapping is: %d \nvalue of y before swapping is: %d ", x,y); //printing numbers before swapping
  // swapping logic starts 
  x=x^y;
  y=x^y;
  x=y^x;
  printf(" \nvalue of x After swapping is: %d \nvalue of y After swapping is: %d ", x,y); //printing numbers after swapping
  return 0;
}

Output:

Enter the x value: 78
Enter the y value: 36
value of x Before swapping is: 78
value of y before swapping is: 36 
value of x After swapping is: 36
value of y After swapping is: 78

Example program to swap two numbers without using a third variable( by multiplication and division method)

// C program to swap two numbers without using a third variable
#include <stdio.h>
int main()
{
  int x, y; // variable declaration
  printf("Enter the x value: ");
  scanf(" %d", &x); // reading x value
  printf("Enter the y value: ");
  scanf(" %d", &y); // reading y value
  printf(" value of x Before swapping is: %d \nvalue of y before swapping is: %d ", x,y); //printing numbers before swapping
  // swapping logic starts 
  x=x*y;
  y=x/y;
  x=x/y;
  printf(" \nvalue of x After swapping is: %d \nvalue of y After swapping is: %d ", x,y); //printing numbers after swapping
  return 0;
}

Output:

Enter the x value: 36
Enter the y value: 98
value of x Before swapping is: 36
value of y before swapping is: 98 
value of x After swapping is: 98
value of y After swapping is: 36

Example program to swap two numbers without using a third variable:

// C program to swap two numbers without using a third variable
#include <stdio.h>
int main()
{
  int x, y; // variable declaration
  printf("Enter the x value: ");
  scanf(" %d", &x); // reading x value
  printf("Enter the y value: ");
  scanf(" %d", &y); // reading y value
  printf(" value of x Before swapping is: %d\nvalue of y before swapping is: %d", x,y); //printing numbers before swapping
  // swapping logic starts 
  x = (x * y) / (y = x);
  printf(" \nvalue of x After swapping is: %d\nvalue of y After swapping is: %d", x,y); //printing numbers after swapping
  return 0;
}

Output:

Enter the x value: 20
Enter the y value: 30
value of x Before swapping is: 20
value of y before swapping is: 30 
value of x After swapping is: 30
value of y After swapping is: 20

Summary:

For all the above examples, the time and space Complexity are

  • Time complexity: O(1)
  • Space complexity: O(1)

In this article, we learned about the swapping of two numbers, advantages of swap function in c++, applications of swapping algorithm, swap function in c++, examples of swapping two numbers in c and c++, different swapping algorithm approaches, Time and space complexity of swapping algorithm.


Related Topics

C++ Multimap

Definition: In C++, a multimap is similar to a map with the additional concept, where multiple elements possess the same keys. It is also not necessary that the key values and...

4 minutes read.

Method overriding in C++

What is method overriding? Using the same function in derived class as their base class is referred to as function/method overriding in c++. Method overriding is an example of polymorphism. With...

2 minutes read.

How to calculate size of string in C++

What is string in C++? In C++, a string is a sequence of characters. The string data type is part of the Standard Template Library (STL) and is defined in the...

4 minutes read.

Function Pointer in C++

Definition: A function pointer in C++ is the same as a usual pointer which is used to point some variables. Function pointers are used to point functions or say store the...

4 minutes read.

C++ Object Class

C++ Object Class Overview: C++ is a high-level programming language and an object-oriented programming language. An object-oriented language always has some properties of classes and objects. In this article, we...

4 minutes read.

Pthreads or POSIX Threads in C++

The thread API for C/C++ is implemented by pthreads or POSIX threads. It enables the multithreading system, which enables parallel and distributed processing, and the creation of new concurrent process...

3 minutes read.

Splitting a string in C++

Any programming language must have the ability to work with string data. For programming needs, we sometimes need to separate string data. Many computer languages provide a split() method that...

4 minutes read.

Virtual Function Vs Pure Virtual Function

Virtual activity is a member function defined in the foundation phase that can be redefined by acquired classes. Let's have a look at an example: #include <iostream>   #include <bits/stdc++.h> #include <stdlib> using namespace std;   class Base   {    ...

5 minutes read.

System() function in C++

As a part of the c/c+ standard library, the system() function passes commands to be executed by the operating system’s command processor or terminal and returns the completed command. We...

2 minutes read.

Decimal to Octal in C++

We must create a software that converts a decimal number into an equal octal number given a decimal number as input i.e. convert a number having a base value of...

3 minutes read.

Snake Code in C++

Snake is a popular game that can be played on almost any device and runs on any operating system. In this game, snakes can move in any direction, including left,...

4 minutes read.

4 Pillars of OOPs

OOPs OOPS means Object Oriented Programming System Structure. Object oriented Programming is defined as an approach that provides a way of modularizing programs by creating partitioned memory area for both data...

11 minutes read.

Constructor Overloading in C++

A Constructor is a class member function that is used to initialize the class's objects. Constructors have no return type and are called automatically when an object is formed. Constructor Characteristics Constructors...

3 minutes read.

Palindrome Number Program in C++

A palindrome number is one that is the same when it is reversed. Palindrome numbers include 22, 33, 44, 55, 66, 77, 88, and 99. Algorithm for Palindrome Numbers Get the user's...

4 minutes read.

C++ Friend Functions

In C++, friends are special functions that are not a part of a class yet have access to its private and protected members. The friend keyword is used to declare...

4 minutes read.

How to enter a name in C++

A name is a string or array of characters or letters. The string is one of the most helpful data types offered by the C++ library. A string helps the...

4 minutes read.

Reverse a Number in C++

In this tutorial, you'll learn how to utilize a C++ program to reverse a number entered by a user at runtime. Because there are various ways to write a C++...

3 minutes read.

Octal to Decimal in C++

We need to write a system that converts octal number into equal decimal number when octal number is given as input. Let us look at an example of a program in...

2 minutes read.

C++ Bidirectional Iterators

Iterators : Iterators serve as a link between algorithms and STL containers, allowing the data inside the container to be modified. They let you to iterate through the container, access and...

3 minutes read.

Differences between #define & const in C/C++

 Differences between #define & const in C/C++ A preprocessor directive is #define. The preprocessor replaces things defined by #define prior to starting compilation. In this chapter, we'll learn about the member, variable,...

3 minutes read.