in_place操作

  in-place操作,意思是所有的操作都是”就地“操作,不允许进行移动,或者称作 原位操作,即不允许使用临时变量。

  举个例子,大家经常写也经常用到的"交换两个数的值":

// 设置初始值
int x = 1,y = 2;

  
  
  • 1
  • 2

1)最先想到的方法,就是设置中间变量

// 设置中间变量
int temp;
temp = x;
x = y;
y = temp;

  
  
  • 1
  • 2
  • 3
  • 4
  • 5

2)然而要满足in-place的要求,就需要另辟蹊径了。比如通过加减运算实现(但是可能会出现溢出)

// 加减运算
x = x + y;
y = x - y;
x = x - y;

  
  
  • 1
  • 2
  • 3
  • 4

3)通过异或操作实现

// 异或运算
x = x ^ y;
y = x ^ y;
x = x ^ y;

  
  
  • 1
  • 2
  • 3
  • 4

------至所有正在努力奋斗的程序猿们!加油!!
有码走遍天下 无码寸步难行
1024 - 梦想,永不止步!
爱编程 不爱Bug
爱加班 不爱黑眼圈
固执 但不偏执
疯狂 但不疯癫
生活里的菜鸟
工作中的大神
身怀宝藏,一心憧憬星辰大海
追求极致,目标始于高山之巅
一群怀揣好奇,梦想改变世界的孩子
一群追日逐浪,正在改变世界的极客
你们用最美的语言,诠释着科技的力量
你们用极速的创新,引领着时代的变迁

——乐于分享,共同进步,欢迎补充
——Any comments greatly appreciated
——诚心欢迎各位交流讨论!QQ:1138517609
——CSDN:https://blog.csdn.net/u011489043
——简书:https://www.jianshu.com/u/4968682d58d1
——GitHub:https://github.com/selfconzrr

        </div>
					<link href="https://csdnimg.cn/release/phoenix/mdeditor/markdown_views-2b43bc2447.css" rel="stylesheet">
            </div>

猜你喜欢

转载自blog.csdn.net/weixin_38246633/article/details/85268571
今日推荐