#include<iostream>
#include<string>
template <typename T>
void swap(T a , T b)
{
T temp = a;
a = b;
b = temp;
}
template <typename T1>
void swap1(T1 a , T1 b)
{
T1 temp = a;
a = b;
b = temp;
}
int main()
{
int a = 10 , b = 20;
std::string first = "hi" , last = "Bye";
swap(a,b);
swap(first, last);
std::cout<<"a = "<<a<<" b = "<<b<<std::endl;
std::cout<<"first = "<<first<<" last = "<<last<<std::endl;
int c = 50 , d = 100;
std::string name = "abc" , surname = "def";
swap1(c,d);
swap1(name,surname);
std::cout<<"c = "<<c<<" d = "<<d<<std::endl;
std::cout<<"name = "<<name<<" surname = "<<surname<<std::endl;
swap(c,d);
swap(name,surname);
std::cout<<"c = "<<c<<" d = "<<d<<std::endl;
std::cout<<"name = "<<name<<" surname = "<<surname<<std::endl;
return 0;
}
**Output**
a = 10 b = 20
first = Bye last = hi
c = 50 d = 100
name = abc surname = def
c = 50 d = 100
name = def surname = abc
दोनों swap()
और swap1()
मूल रूप से एक ही फ़ंक्शन-परिभाषाएँ हैं फिर केवल swap()
स्ट्रिंग्स को स्वैप क्यों swap1()
करता है , जबकि नहीं करता है?
क्या आप मुझे यह भी बता सकते हैं कि stl स्ट्रिंग्स को डिफॉल्ट रूप से तर्क के रूप में कैसे पास किया जाता है, क्या वे वैल्यू या रेफरेंस द्वारा पास किए जाते हैं?