题目的主要信息:
- 编写一个函数实现两个整数的交换
- 要求使用引用实现
具体做法:
正常我们传到函数里面的值只是这两个变量的值,在函数的中运算跟这两个变量的没有关系,改动也不会影响到原来的变量,因为函数中新开辟地址利用新的变量来存储这两个值。因此,如下的代码:
void swap(int m, int n){
int temp = m;
m = n;
n = temp;
}
只能在swap函数中交换与的值,在函数外面还是老样子。但是如果我们在函数参数前面加上了引用符号(&),那就代表将这个地址送入函数中,而不是变量的值拷贝过去,这样我们对于变量的修改是会影响到传入函数中的变量的,因此对上述代码改进一下即可实现交换。
#include <iostream>
using namespace std;
void swap(int &m, int &n){ //交换两个整数的函数,用引用
int temp = m; //交换两个数
m = n;
n = temp;
}
int main() {
int m, n;
cin >> m;
cin >> n;
swap(m, n); //函数交换
cout << m << " " << n << endl;
return 0;
}
复杂度分析:
- 时间复杂度:,直接交换,无额外空间
- 空间复杂度:,常数级空间