博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
让人泪奔的方法:两个变量在不使用其他变量的情况下进行数据交换
阅读量:6691 次
发布时间:2019-06-25

本文共 448 字,大约阅读时间需要 1 分钟。

这是个很经典很多时候都会用到的问题,但是容易被忘记。在这里做个笔记:

int a = 1;int b = 2;inline void Swap(int &a,int &b) {
    if(a!=b)     {
         a=a^b;          b=a^b;        a=a^b;      } }

^是异或XOR运算符;

优化后:

int &swap(int &a, int &b)

{
    return (b ^= a ^= b ^= a);
}

这样就实现了交换

方法一

void swap(int *p, int *q)

{
    *p = *p + *q;
    *q = *p - *q;
    *p = *p - *q;
}

方法二

void swap(int *p, int *q)

{
    *p = *p + *q - (*q = *p);
}

转载于:https://www.cnblogs.com/shoneworn/p/3385987.html

你可能感兴趣的文章
神经网络优化(四) - 全连接网络实战(输入手写数字输出识别结果)
查看>>
《重构-改善既有代码的设计》 代码的坏味道(一)
查看>>
RS交叉表自动汇总后百分比列显示错误之解决方案
查看>>
iOS 关于僵尸对象和僵尸指针的那些事儿
查看>>
心悸案
查看>>
MyEclipse设置像visual studio一样的智能提示
查看>>
76. Minimum Window Substring
查看>>
linux挂载根文件系统过程
查看>>
ORA-00600: internal error code, arguments: [kcblasm_1], [103], [], [], [], [], [], []
查看>>
漫游Kafka实战篇之搭建Kafka运行环境(2)
查看>>
基础知识《九》---网络编程
查看>>
美图秀秀滤镜之对比度
查看>>
Leetcode_num3_Same Tree
查看>>
5、JavaScript进阶篇②——函数、事件、内置对象
查看>>
shell 脚本执行日志通用模块
查看>>
C#操作xml SelectNodes,SelectSingleNode总是返回NULL 与 xPath 介绍
查看>>
Unity中Mesh分解与边缘高亮加上深度检测
查看>>
Java提高篇——静态代码块、构造代码块、构造函数以及Java类初始化顺序
查看>>
spring boot(二):web综合开发
查看>>
人工智能范畴及深度学习主流框架,谷歌 TensorFlow,IBM Watson认知计算领域IntelligentBehavior介绍...
查看>>