位置: IT常识 - 正文

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

发布时间:2024-01-20
在 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表格斜线的打出的方法是什么(word2019表格斜线)

    word表格斜线的打出的方法是什么(word2019表格斜线)

  • 微信拉黑后对方发信息会显示什么(微信拉黑后对方发好友申请能收到吗)

    微信拉黑后对方发信息会显示什么(微信拉黑后对方发好友申请能收到吗)

  • 为什么快手评论区不显示表情(为什么快手评论了对方看不到)

    为什么快手评论区不显示表情(为什么快手评论了对方看不到)

  • 微信号搜索用户不存在(微信号搜索用户头像不会变)

    微信号搜索用户不存在(微信号搜索用户头像不会变)

  • 抖音不能搜索怎么回事(抖音怎么没法搜索)

    抖音不能搜索怎么回事(抖音怎么没法搜索)

  • 手机后面放身份证消磁吗(手机后面放身份证风水)

    手机后面放身份证消磁吗(手机后面放身份证风水)

  • 监控上的二维码在哪里..(监控上的二维码在哪)

    监控上的二维码在哪里..(监控上的二维码在哪)

  • 怎样转发语音聊天记录给别人(怎样转发语音聊天记录到微信)

    怎样转发语音聊天记录给别人(怎样转发语音聊天记录到微信)

  • 无线充电器有反应但充不进电(无线充电器有反应但充不进电是那里坏了)

    无线充电器有反应但充不进电(无线充电器有反应但充不进电是那里坏了)

  • 耳机声音忽大忽小(耳机声音忽大忽小怎么调)

    耳机声音忽大忽小(耳机声音忽大忽小怎么调)

  • pdf扫描版是什么意思(pdf格式扫描版是怎么做的)

    pdf扫描版是什么意思(pdf格式扫描版是怎么做的)

  • airpods 安卓机能用吗(airpods安卓手机能用吗)

    airpods 安卓机能用吗(airpods安卓手机能用吗)

  • qq会员铭牌怎么更换(qq会员铭牌怎么隐藏)

    qq会员铭牌怎么更换(qq会员铭牌怎么隐藏)

  • 快手怎么登录(快手怎么登录别人的快手号)

    快手怎么登录(快手怎么登录别人的快手号)

  • wds桥接和中继的区别(wds桥接和中继哪个网速快)

    wds桥接和中继的区别(wds桥接和中继哪个网速快)

  • 抖音视频下载不了怎么回事(抖音视频下载不了怎么提取音乐)

    抖音视频下载不了怎么回事(抖音视频下载不了怎么提取音乐)

  • 华为p30设置返回键(华为p30设置返回键怎么设置)

    华为p30设置返回键(华为p30设置返回键怎么设置)

  • vivoy97支持红外遥控吗(vivoy97手机有红外线功能吗)

    vivoy97支持红外遥控吗(vivoy97手机有红外线功能吗)

  • 淘宝图片dw设置超链接(淘宝怎么设置图片清晰度)

    淘宝图片dw设置超链接(淘宝怎么设置图片清晰度)

  • 微信录屏怎么弄(微信视频录屏怎么弄)

    微信录屏怎么弄(微信视频录屏怎么弄)

  • 小米6如何隐藏软件(小米6如何隐藏应用)

    小米6如何隐藏软件(小米6如何隐藏应用)

  • 怎么用光驱重装系统?(怎么光驱重装系统)

    怎么用光驱重装系统?(怎么光驱重装系统)

  • regsvc32.exe - regsvc32是什么进程 有什么用

    regsvc32.exe - regsvc32是什么进程 有什么用

  • 计算机视觉——图像视觉显著性检测(计算机视觉的应用)

    计算机视觉——图像视觉显著性检测(计算机视觉的应用)

  • 车辆保险费发票的会计分录
  • 小规模纳税人应交税费的二级科目
  • 一般纳税人的认定时间
  • 记账凭证核算形式是会计核算中最基本的核算形式
  • 个人独资企业需要交什么税
  • 体检费要缴纳个人所得吗?
  • 待转销项税额明细科目核算一般纳税人
  • 贷款受托支付可以给股东吗
  • T3现金流量表怎么删除
  • 以前暂估的成本,年终要冲销怎么做账
  • 电子发票红字发票怎么开
  • 以应税消费品抵偿债务的计税依据
  • 纸质发票如何查看电子发票
  • 事业单位财务收支
  • 企业作为二房东要交什么税
  • 会计分录怎么确认借贷方向
  • 出口零退税率是什么意思
  • 个体工商户生产经营所得税率
  • 公司一上来要签三年
  • 接受现金捐赠怎么写分录
  • 募捐建议
  • 二手房增值营业税
  • 从农民手中购买农产品税率
  • 图书发票没有明细能报销吗?
  • 公司向个人租车协议范本
  • 小规模纳税人建筑行业
  • 没有发票的怎么报账
  • 科研费收入如何入账?
  • 苹果mac切换桌面快捷键
  • 企业老板机票怎么报销记账
  • win10无法以管理员身份运行的原因及解决方法
  • vue经典案例
  • 野外生存探险家
  • 向境外企业支付技术咨询指导费
  • 企业产房屋拆迁
  • 更换电脑金税盘的数据如何导入新电脑
  • php批量删除文件
  • 分页limit参数
  • hive.
  • phpsystem函数
  • db2udb
  • 矿产资源补偿费属于管理费用吗
  • 社保可以补交吗
  • access导入到mysql
  • 通过法院拍卖取得的土地没有得到执行属于什么案件
  • 办公室装修用什么材料便宜
  • 关税完税价格计算增值税
  • 帐务处理程序
  • 以公司名义买500万的车省多少税
  • 无形资产如何做账务处理
  • 固定资产清理后折旧怎么处理
  • 上年度财务费用会计分录
  • 转账支票遗失声明
  • 冲回去年收入会计分录
  • 无形资产计提减值准备计算
  • 专家评审费需要上税吗
  • 旅行社的代订机票产品能报销吗
  • mysql 生成guid
  • sql server 2005数据备份
  • sql 复合语句
  • 将mater库中的系统存储过程批量生成*.sql文件 通用且非常实用
  • sqlserver的基本语句
  • vmware虚拟机找不到了
  • windows怎么查看
  • macbook launch
  • win7显示网上邻居图标
  • winxp系统怎么安装
  • macbook 苹果系统
  • win10 sam文件下载
  • win7关掉wifi
  • unity性能优化工具
  • shtml精简教程让你知道什么是shtml
  • jquery图片轮播无缝连接
  • nodejs发送post请求socket hand up
  • [置顶]电影名字《收件人不详》
  • js模块化和组件化
  • python设计内容
  • 出租车开的发票如何查询校验码?
  • 丰田威驰2023款1.5自动挡新车报价
  • 新版电子发票怎么看发票代码图片
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号