- 帅泓宇 的博客
P0005题解
- @ 2026-2-28 13:02:37
前置:无
最低所需知识点:基础语法
此题思路有一个很简单的做法......但是我不讲 如果想看 可以先解决此题再去题解区查收
题目说是交换两个变量的值即可 但其实我可以讲两种方法
1:缓存变量法
两个变量a和b 交换它们的值
如果直接
a=b;
b=a;
那么恭喜你 你WA(答案错误)了
因为在执行a=b的时候a的值已经被更改为b的值了
在此之后执行b=a 因为a的值就是b的值 所以此更改毫无意义b还是b
如果这两行代码可以同时执行 这种思路显然正确
但是C++并没有这个条件
我们发现在执行a=b之后已经没有变量的值是a了 所以b变成谁 它的值都不会是a原本的值
所以我们引入一个变量c
在执行a=b之前 就使c=a 这样就算执行a=b之后也有变量的值为一开始a的值了
但是b不可以再更改为a了 因为此时a的值不是它开始的值 c才是
所以b应该更改为c
方法二:函数法 STL万岁!
调用swap函数
格式如下
swap(a,b);
转换完成!是不是很短 但其实本质思路和方法一并没有什么区别......
讲解完两种做法 你肯定会了 去题解去领取更简单的方法吧~
------------------------------------------------------------题解结束------------------------------------------------------------