位置: 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打不出字怎么回事)

  • 唱吧麦克风怎么连手机(唱吧麦克风怎么看剩余电量)

    唱吧麦克风怎么连手机(唱吧麦克风怎么看剩余电量)

  • freelace pro怎么连接(freelace pro怎么连接小米手机)

    freelace pro怎么连接(freelace pro怎么连接小米手机)

  • amazfit手表怎么连接手机(amazfit手表怎么导入歌曲)

    amazfit手表怎么连接手机(amazfit手表怎么导入歌曲)

  • 电脑的芯片主要是由什么物质组成的(电脑芯片排行榜2023最新)

    电脑的芯片主要是由什么物质组成的(电脑芯片排行榜2023最新)

  • 华为p40跟p40pro对比(华为p40与p40pro)

    华为p40跟p40pro对比(华为p40与p40pro)

  • 重复值颜色怎么取消(重复项颜色)

    重复值颜色怎么取消(重复项颜色)

  • 电脑微信可以不用手机验证吗(电脑微信可以不跟手机同步吗)

    电脑微信可以不用手机验证吗(电脑微信可以不跟手机同步吗)

  • 电脑上腾讯视频怎么转90度(电脑上腾讯视频怎么下载到桌面)

    电脑上腾讯视频怎么转90度(电脑上腾讯视频怎么下载到桌面)

  • 交易猫退款要退多久(交易猫退款退手续费吗)

    交易猫退款要退多久(交易猫退款退手续费吗)

  • u盘泡水了还有用吗(u盘泡水后会坏掉吗)

    u盘泡水了还有用吗(u盘泡水后会坏掉吗)

  • 华为nova7如何长截屏(华为nova7怎么这么长)

    华为nova7如何长截屏(华为nova7怎么这么长)

  • 抖音改不了资料怎么办(抖音改不了资料说服务器升级中)

    抖音改不了资料怎么办(抖音改不了资料说服务器升级中)

  • 拼多多怎么添加好友申请(拼多多怎么添加地址)

    拼多多怎么添加好友申请(拼多多怎么添加地址)

  • 1号电池和2号电池的区别(1号电池和2号电池图片)

    1号电池和2号电池的区别(1号电池和2号电池图片)

  • 公众号改名字需要多久(公众号改名字需要多久能变过来)

    公众号改名字需要多久(公众号改名字需要多久能变过来)

  • 红米k30有没有提示灯(红米k30有哪些新功能)

    红米k30有没有提示灯(红米k30有哪些新功能)

  • iphone se是苹果几代(苹果se相当于苹果几)

    iphone se是苹果几代(苹果se相当于苹果几)

  • 监控显示器和电脑显示器一样吗(监控显示器和电脑显示器有什么区别)

    监控显示器和电脑显示器一样吗(监控显示器和电脑显示器有什么区别)

  • qq的解除关系是什么功能(qq解除关系是对方删的还是自己)

    qq的解除关系是什么功能(qq解除关系是对方删的还是自己)

  • 苹果手机播客可以卸载吗(苹果手机播客可以华为下载吗)

    苹果手机播客可以卸载吗(苹果手机播客可以华为下载吗)

  • wifi6是wifi5的多少倍(wifi6是5gwifi吗)

    wifi6是wifi5的多少倍(wifi6是5gwifi吗)

  • 拼多多怎么查找店铺(拼多多怎么查找聊天记录)

    拼多多怎么查找店铺(拼多多怎么查找聊天记录)

  • 如何把抖音视频成锁屏(如何把抖音视频发给微信好友)

    如何把抖音视频成锁屏(如何把抖音视频发给微信好友)

  • 骁龙650和660差多少(骁龙gpu650和660)

    骁龙650和660差多少(骁龙gpu650和660)

  • 水印相机怎么写字(水印相机怎么写文字)

    水印相机怎么写字(水印相机怎么写文字)

  • 微信分在哪里查看(微信怎么才有分付)

    微信分在哪里查看(微信怎么才有分付)

  • 购买方收取的违约金怎么入账
  • 两地发工资个税处理
  • 计提坏账准备的做法体现了
  • 劳务公司包工包料的法律法规
  • 应收账款贷方有余额是什么意思
  • 发票认证了申报系统没有数据
  • 员工福利费可以公账出吗
  • 收到损坏赔偿款怎么入账
  • 一般纳税人销项开普票,进项票可以抵扣吗
  • 资源税有哪些减免规定
  • 应收票据怎么写
  • 注册资本金印花税什么时候缴纳
  • 固定资产融资租赁账务处理
  • 以前年度长期股权投资漏记调整
  • 企业的耕地占用税怎么算
  • 退预付账款会计分录
  • 进口关税专用缴款书怎么做分录
  • 报销车费滴滴怎么打印电子发票
  • 年终奖第二年才发怎么计算个税在个税app
  • 计提了坏账准备对利润的影响
  • 减免税款交企业所得税吗
  • 外购存货成本包括哪些
  • 外贸出口支付方式
  • 一般风险准备金计算公式
  • 用于研发的设备如何折旧
  • 日工资计算的三种方法
  • 怎么认定是否为包工头
  • 怎么安装win7系统u盘
  • php与mysql基础教程
  • linux sl
  • 何为职工
  • PHP:imagesetinterpolation()的用法_GD库图像处理函数
  • 非营利组织增值税
  • 其他免税销售额>0时,免税性质代码不能为空是什么意思
  • vue backbone
  • php给图片加水印
  • php入门基础教程
  • iscan扫描仪使用方法
  • 契税计入会计利润总额吗
  • 主营业务收入未收到钱
  • sqlserver四舍五入到整数
  • 个体户季度免多少税
  • 增值税包括哪三种类型
  • 母公司与子公司的区别
  • 个人独资企业应税生产经营所得可以扣除税金支付
  • 取得交易性金融资产的交易费用
  • 应交税费的核算范围
  • 预收账款是负债增加还是减少
  • 无形资产土地入账日期怎么确定
  • 开出去的发票
  • 装修材料增值税发票明细表
  • 新组建的公司该怎样开展工作
  • 什么是现金等价物列举
  • mysql三层架构
  • mySQL中in查询与exists查询的区别小结
  • win8升win8.1
  • windows7如何启动记事本
  • xp系统电脑开机密码忘记了
  • win1020h2版本千万别更新
  • windows7无法激活怎么解决方法
  • win10怎么分屏操作
  • [置顶] 关于UNITY5.0和高通AR4.2.3在手机上白屏的问题
  • jquery 动态添加列表元素
  • node.js编译
  • alt+r没用
  • cocos2dx官方教程
  • javascript中interval与setTimeOut的区别示例介绍
  • linux编译链接命令
  • ie在支持ftp的功能方面
  • nodejs 获取命令行参数
  • JavaScript中字符串模板
  • javascript基础书
  • python爬虫利器
  • linux显示中文
  • 浙江社保费申报说无有效三方协议信息
  • 怎么查询企业类别
  • 亿企赢工作前景怎么样
  • 烟叶收购价款
  • 专家费缴税标准
  • 房地产预缴土增值税
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设