位置: IT常识 - 正文

C++ 一种交换两个数的思路(c++交换语句)

编辑:rootadmin
在 Lua 或者 Python 中可以使用多值赋值语句来交换两个数。例如:a, b = b, a。在 C++ 中有没有类似的操作? 先解析一下多值赋值的原理,a, b = b, a 等价于 t1, t2 = b, a a, b = t1, t2 可以看到多值赋值还是用到了中间变量,而且还是两个。想到 ...

推荐整理分享C++ 一种交换两个数的思路(c++交换语句),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:c++交换两个数的值,c++中交换函数,c++中交换两个变量的值,c++交换两个字符串,c++交换两数,c++中交换两个变量的值,c++交换两个变量的值,不能使用中间变量,c++交换两个变量的值,不能使用中间变量,内容如对您有帮助,希望把文章链接给更多的朋友!

在 Lua 或者 Python 中可以使用多值赋值语句来交换两个数。例如:a, b = b, a。在 C++ 中有没有类似的操作?

C++ 一种交换两个数的思路(c++交换语句)

先解析一下多值赋值的原理,a, b = b, a 等价于

t1, t2 = b, aa, b = t1, t2

可以看到多值赋值还是用到了中间变量,而且还是两个。想到两个变量,可以联想到 C++ 中的 std::pair,可以用 std::make_pair(b, a) 构造中间变量,来完成上述第 1 条语句的功能。中间变量是 std::pair 类型。如何将 std::pair 的两个元素赋值给 a 和 b ? 可以利用 std::tie 对 std::pair 进行 unpack。示例代码如下:

#include <iostream>#include <tuple>int main(){ int a = 1, b = 2; std::tie(a, b) = std::make_pair(b, a); std::cout << a << " " << b << std::endl;}

成功输出:

2 1

这种方法也和多值赋值一样可以适用于多个数的交换。例如让 a、b、c、d 四个数左循环交换一次(全部往左边挪一个位置)。示例代码如下:

#include <iostream>#include <tuple>int main(){ int a = 1, b = 2, c = 3, d = 4; std::tie(a, b, c, d) = std::make_tuple(b, c, d, a); std::cout << a << " " << b << " " << c << " " << d << std::endl;}

成功输出:

2 3 4 1
本文链接地址:https://www.jiuchutong.com/zhishi/303173.html 转载请保留说明!

上一篇:如何使用python绘制折线图?(用python绘制)

下一篇:ps打不出字但图层有字(ps打不出字怎么回事)

  • iphone11声音很小(iphone11 声音很小)

  • 小米note3屏幕刷新率(小米note3刷入第三方recovery)

  • iwatch5待机时间多长(applewatch5待机)

  • 手机投屏到电脑上需要什么软件(手机投屏到电脑显示器)

  • 酷我音乐能下载歌曲吗(酷我音乐能下载mv吗)

  • 试电笔零线亮的原因(验电笔测试零线亮)

  • 微信怎么设置特别关注(微信怎么设置特别提醒)

  • qq勋章在哪里看(qq勋章怎么看的)

  • 微信拉黑打得通语音吗(微信拉黑了还能打通吗)

  • 苹果11可以登两个微信吗(苹果11可以登两个微信不)

  • 华为nova5ipro支不支持nfc(华为nova5ipro支持5g吗)

  • 手机耳机只有一边有声音怎么解决(手机耳机只有一只能听了怎么办)

  • 手环离开手机可以计步数吗(手环离开手机可以计步吗?)

  • qq音乐怎么样退出登录(怎么退掉qq音乐)

  • vuevlog如何调速度(vue vlog加速后没声音)

  • set协议的主要优点(set协议的作用)

  • 快手主页链接在哪里(快手主页链接在哪里搞)

  • 三星手机截屏怎么操作(三星手机截屏怎么截用什么键呢)

  • 抖音如何上传高清画质(抖音如何上传高清图片)

  • 健康管理师就业范围以及在国内前景如何

  • word为什么编辑不了(word为什么编辑的时候看不到的文字,打印的时候有)

  • 怎么把几张照片弄成一张(怎么把几张照片合在一起)

  • 小米9se与小米cc9对比(小米9se与小米8对比)

  • 十进制小数转二进制(十进制小数转二进制方法)

  • 鸿蒙系统公测版如何升级正式版 鸿蒙公测版和正式版区别是什么(鸿蒙系统最新版本)

  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设 电脑维修 湖南楚通运网络