搜索
简帛阁>技术文章>swap()函数

swap()函数

一、通用的函数交换模板

 template<class T>
 void swap(T &a,T &b)
 {
     T c(a);
     a=b;
     b=c;
 }

T为类型,可根据实际需要使用相应的类型

二、针对int类型的优化

使用异或,整数异或本身为结果0;一个数异或0结果为本身;

 void swap(int &a,int &b)
 {
     a^=b;
     b^=a;       //相当于b=a
     a^=b;       //相当于a=b
 }

三、自定义swap时,注意事项

1、达不到交换的作用

 void swap(int a,int b)
 {
     int temp=a;
     a=b;
     b=temp;
 }

这里只是交换了a和b实参的副本,而它们本身没有交换。

2、能达到交换的作用

void swap(int *a,int *b)
{
    int temp;
    temp=*a;
    *a=*b;
    *b=temp;
}

//使用
int main()
{
    int a=1,b=2;
    swap(&a,&b);
    return 0;
}

注意,第三行中,不要将temp定义为一个指针,因为没有初始化指针而去使用它很危险。

一、通用的函数交换模板template<classT>voidswap(Ta,Tb){Tc(a);ab;bc;}T为类型,可根据实际需要使用相应的类型二、针对int类型的优化使用异或,整数
这次我们要透过一个简单的函数swap深入理解函数传参的本质以及在C中如何选择传参方式。首先,先来看第一段程序:voidswap(intx,inty){<!>inttempy;yx;xtem
c语言中swap函数介绍(Introduction)Inthistutorial,wearegoingtolearntheswap()functioninC++programminglanguageS
在许多应用程序中,都有交换相同类型的两个变量内容的需要。例如,在对整数数组进行排序时,将需要一个函数来交换两个变量的值,如下所示:voidswap(inta,intb){inttempa;ab;bte
Swap()函数的详细解析在c\c++编程上,我们常会用到Swap()函数,实现其两个数据之间的调换。但由于Swap()函数的运用存在诸多限制,很容易造成数据对调失败。下面让我们进入Swap()函数
在学习C语言时,我们学到指针这里的时候,使用到Swap函数,下面是关于Swap函数的一些见解。首先我们通常会用下面的代码来实现Swap函数整型变量的交换:voidSwap(int*p1,int*p
本文是我用到swap函数时,对其产生好奇,所以结合网上有关博文写下的。个人水平有限,若有错误的地方,欢迎留言指出。谢谢!一、通用的函数交换模板1template<classT>2void
C++中的swap函数:交换函数好处:不用担心交换变量精度的缺失,无需构造临时变量,不会增加空间复杂度swap包含在命名空间std里面swap(a,b);(交换两个数swap(a[i]b[j]);
swap函数几乎是所有初学者都写过的一个最基本的函数之一,通常是用它来了解函数概念、形参与实参、引用和指针。然而,这个极为基础的函数却有着非常重要的作用。正因为它的重要性、普遍性,意味着swap函数
这次我们要透过一个简单的函数swap深入理解函数传参的本质以及在C++中如何选择传参方式。先来看第一段程序:voidswap(intx,inty){inttempy;yx;xtemp;}通过main函