对于指针一直很迷,今天看了一下指针交换数组,知识量很少,希望能帮助到大家。
利用指针来交换数组主要是为了节省时间嘛,有两种交换方式
第一种是写一个函数把数组传过去然后用swap交换,即可
代码如下:
#include<iostream>#include<cstdio>#include<ctime>using namespace std;
int a[100000050],b[100000050];
void da(int *a,int *b){
swap(a,b);
cout<<a[1]<<" "<<b[1]<<endl;
}
int main(){
double tmp=clock();
a[1]=1,b[1]=2;
da(a,b);
printf("%.2lf",(double)((clock()-tmp)/CLOCKS_PER_SEC));
return 0;
}
但是这样的交换只在函数里有用,到主函数里还是相当于没有交换,所以我们还有另一种方法
#include<iostream>#include<cstdio>#include<ctime>using namespace std;
int a[100000050],b[100000050];
int main(){
double tmp=clock();
a[1]=1,b[1]=2;
int *op1=a;
int *op2=b;
swap(op1,op2);cout<<op1[1]<<" "<<op2[1]<<endl;
printf("%.2lf",(double)((clock()-tmp)/CLOCKS_PER_SEC));
return 0;
}
代码里都有时间函数,读者可以自己运行一下看看时间,应该是0.00
以上这篇c++用指针交换数组的实例讲解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
您可能感兴趣的文章:
- C语言指针详解及用法示例
- C++中回调函数及函数指针的实例详解
- C++中函数指针详解及代码分享
- java使用RandomAccessFile类基于指针读写文件实例代码
- golang方法中receiver为指针与不为指针的区别详析
- C++ 中boost::share_ptr智能指针的使用方法
- C语言中二级指针的实例详解
- 浅谈使用C++多级指针存储海量qq号和密码