Mat*_*son 0 c++ performance sign operators
我有一个表达
x += y;
Run Code Online (Sandbox Code Playgroud)
并且,基于布尔值,我希望能够将其更改为
x -= y;
Run Code Online (Sandbox Code Playgroud)
我当然能做到
if(i){x+=y;} else{x-=y;}
//or
x+=(y*sign); //where sign is either 1 or -1
Run Code Online (Sandbox Code Playgroud)
但如果我必须迭代地执行此操作,我想避免额外的计算.有更有效的方法吗?可以调节操作员吗?
if (i) {x += y;} else {x -= y;}
Run Code Online (Sandbox Code Playgroud)
可能会像你能做的任何其他事情一样高效. y * sign
可能相当昂贵(除非编译器能够确定y
保证为1或-1).