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

  • word标题字符间距怎么设置(word标题字符间距在哪里设置)

    word标题字符间距怎么设置(word标题字符间距在哪里设置)

  • oppo手机喇叭清灰(oppo手机喇叭清灰功能有用吗)

    oppo手机喇叭清灰(oppo手机喇叭清灰功能有用吗)

  • 无线鼠标的接收器能通用吗(无线鼠标的接收器插在哪里)

    无线鼠标的接收器能通用吗(无线鼠标的接收器插在哪里)

  • 中兴路由器初始密码(中兴路由器初始wifi密码)

    中兴路由器初始密码(中兴路由器初始wifi密码)

  • 小米cc9手机怎么录制自己手机里面的视频(小米cc9手机怎么恢复出厂设置)

    小米cc9手机怎么录制自己手机里面的视频(小米cc9手机怎么恢复出厂设置)

  • 华为手机量体温(华为手机量体温软件)

    华为手机量体温(华为手机量体温软件)

  • 快手显示x作品是什么意思(快手里作品列表怎么回事)

    快手显示x作品是什么意思(快手里作品列表怎么回事)

  • qq几级才有皇冠(qq多少级会有皇冠)

    qq几级才有皇冠(qq多少级会有皇冠)

  • 华为手环可以连接苹果手机吗(华为手环可以连接苹果吗)

    华为手环可以连接苹果手机吗(华为手环可以连接苹果吗)

  • 5gwifi4g手机能用吗(5gwifi4g手机可以用吗)

    5gwifi4g手机能用吗(5gwifi4g手机可以用吗)

  • 显示器与主机有几根线(显示器与主机有没有不兼容)

    显示器与主机有几根线(显示器与主机有没有不兼容)

  • 小米手机不充电是什么原因(小米手机不充电就关机怎么办)

    小米手机不充电是什么原因(小米手机不充电就关机怎么办)

  • 苹果手机可以充电一个晚上吗(苹果手机可以充满电吗)

    苹果手机可以充电一个晚上吗(苹果手机可以充满电吗)

  • soul性别换不回来了(soul性别改不回来)

    soul性别换不回来了(soul性别改不回来)

  • 微信有异常行为怎么恢复正常(微信有异常行为么回事怎么解决)

    微信有异常行为怎么恢复正常(微信有异常行为么回事怎么解决)

  • 华为p20多长(华为手机p20多长)

    华为p20多长(华为手机p20多长)

  • nokia2720能装微信吗(诺基亚可以下载微信的手机)

    nokia2720能装微信吗(诺基亚可以下载微信的手机)

  • 接不了视频怎么回事(为什么接不了视频聊天)

    接不了视频怎么回事(为什么接不了视频聊天)

  • oppoa11带nfc功能吗 (oppo a11有nfc)

    oppoa11带nfc功能吗 (oppo a11有nfc)

  • 淘宝海外版叫什么(淘宝店铺海外版)

    淘宝海外版叫什么(淘宝店铺海外版)

  • 微信扫码乘车怎么使用(微信扫码乘车怎么扣费)

    微信扫码乘车怎么使用(微信扫码乘车怎么扣费)

  • vivo手机怎么切换返回键(vivo手机怎么切换4g5g)

    vivo手机怎么切换返回键(vivo手机怎么切换4g5g)

  • 软件设计的原则(软件设计的原则及注意事项)

    软件设计的原则(软件设计的原则及注意事项)

  • 全网最新的vue.js下载和安装的3种方法(2023年)(全网最新的暗号)

    全网最新的vue.js下载和安装的3种方法(2023年)(全网最新的暗号)

  • 免税进账转出怎么填表
  • 进项税额转出的情况
  • 物业公司物业费收入会计分录
  • 软件服务费280抵扣申报
  • 一般纳税人销项开普票,进项票可以抵扣吗
  • 企业生产过程中执行标准要把握好以下原则
  • 加工费的计提工资账务处理
  • 股权转让的溢价要交什么税
  • 建筑施工企业预交税款
  • 小微企业减免的增值税账务处理
  • 个人所得税未缴算偷税吗
  • 外币报表折算差额为负数代表
  • 企业所得税三项费用扣除
  • 可以做投标保证金的有银行汇票银行保函
  • 企业会计准则制度
  • 客户扣了一部分不合格产品的货款,请问如何做账呢?
  • windows10如何关闭病毒和威胁防护设置
  • win10怎么防火墙白名单
  • linux版笔记本什么意思
  • 个税汇算清缴已退税到账,怎么更正
  • 制药厂副产品
  • bellzee.exe是什么
  • PHP:pg_field_size()的用法_PostgreSQL函数
  • PHP:pg_copy_from()的用法_PostgreSQL函数
  • 其他应收款可以和其他应付款对冲吗
  • php二分查找算法两种方法
  • ds file是干什么的
  • 斯科默岛白玉草丛中的海鹦,威尔士彭布罗克郡 (© Ross Hoddinott/Minden Pictures)
  • PHP:mcrypt_enc_get_key_size()的用法_Mcrypt函数
  • 期房如何快速卖出
  • 资产减值对应科目
  • 长期股权投资会减值吗
  • 发票多久过期不能开
  • 合并资产负债表模板
  • addr指令
  • 存货采购成本有余额吗
  • 报销的时候发票金额大于实际报销的金额
  • 投资收益的核算依据
  • mysql5.5命令
  • 一般纳税人购入需要安装的生产设备,其入账价值包括
  • PostgreSQL教程(八):索引详解
  • mysql数据库中进入mysql库的命令
  • 我国会计制度对会计要求
  • 办培训机构需要什么条件手续
  • 未分配利润与利润表的勾稽关系
  • 本月收入未开票会计分录
  • 企业缴纳印花税时需要
  • 经营范围中没有这个项目开票后果
  • 技术转让费如何计算
  • 应付账款期初期末
  • 研发支出费用化对财务报表的影响
  • 营业外收入账务处理方法
  • 为什么银行结息不加入账户
  • 存量资金上缴财政怎么做账
  • 无法收回的款项怎么记账
  • 营改增后被挂靠的企业如何做账?
  • 采购人员垫付怎么入账
  • 抵扣进项税额必须用专用发票吗
  • 餐饮会计做账流程图
  • mysql2003错误如何解决10061
  • MySQL去除重复数据
  • sqlserver连接异常
  • sql转换
  • win8系统连接不了网络
  • win1010卸载
  • windows server 2008 r2最大支持内存
  • WIN10系统中断
  • ubuntu搭建nginx服务器教程
  • macbook屏幕自动亮度调节
  • linux中ftp
  • win10移动版能运行电脑软件吗
  • ftp自动上传文件怎么关闭
  • javascript HTML5 Canvas实现圆盘抽奖功能
  • node.js教程详细
  • 事件绑定js
  • jq点击图片让图片进行切换
  • jquery的实现原理
  • unity3d赛车游戏毕业设计
  • python3.6安装pil
  • 如何查询契税是否逾期
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设