swap() फ़ंक्शन
दो संख्याओं को स्वैप (अदला-बदली) करने के लिए उपयोग किया जाता है। तीसरे वेरिएबल की आवश्यकता नहीं होती। <algorithm> या <utility> हेडर में परिभाषित (C++11 से)।
सिंटैक्स
void swap(Type& a, Type& b);
उदाहरण 1: मान द्वारा पास (मान बदलते नहीं)
#include <bits/stdc++.h>
using namespace std;
int main() {
int x = 35, y = 75;
printf("Value of x: %d", x);
printf("\nValue of y: %d", y);
swap(x, y); // मान स्वैप होते हैं
printf("\nAfter swapping: x = %d, y = %d", x, y);
return 0;
}
आउटपुट
Value of x: 35 Value of y: 75 After swapping: x = 75, y = 35
उदाहरण 2: संदर्भ द्वारा पास (वास्तविक स्थान पर स्वैप)
#include <stdio.h>
void SwapValue(int &a, int &b) { // रेफरेंस पैरामीटर्स
int t = a;
a = b;
b = t;
}
int main() {
int a, b;
printf("Enter value of a: ");
scanf("%d", &a);
printf("\nEnter value of b: ");
scanf("%d", &b);
SwapValue(a, b);
printf("\nAfter swapping: a = %d, b = %d", a, b);
return 0;
}
आउटपुट
Enter value of a: 8 Enter value of b: 28 After swapping: a = 28, b = 8
महत्वपूर्ण बिंदु
- C++ STL का
std::swapरेफरेंस द्वारा पास करता है (वास्तविक मान स्वैप होते हैं) - कस्टम स्वैप फ़ंक्शन में रेफरेंस पैरामीटर्स (
int&) का उपयोग करें - C++11 से
std::moveके साथ मूव सेमेन्टिक्स का उपयोग करके कुशल स्वैप - ऐरे/कंटेनर्स के लिए
std::swap_rangesउपलब्ध
std::swap कार्यान्वयन (सरलीकृत)
template <class T>
void swap(T& a, T& b) noexcept {
T temp = std::move(a);
a = std::move(b);
b = std::move(temp);
}