c++编程技巧总结(更新中)

  • if(b&1)

&(按位与)就是对两个操作数的二进制形式的每一位进行逻辑与操作,有0则为0。例如1&0=0; 1&1=1;而偶数最后一位为0,奇数最后一位为1。因此b&1就是判断b是否为偶数,!b&1就可以用来判断奇数。偶数的话结果为0,奇数的话结果为1。

>>(右移运算符),移位运算符左边是要移位的数值,右边是移位的位数,右移是按照指定的位数将一个数的二进制向右移位,右移后,移出的低位舍弃,如果是无符号位,则高位补0,如果是有符号数,则高位补充符号位或者0。

eg:char型变量的值是-8,它的二进制补码为1111000,所以a>>2需要将右边两个0移出,由于最左边为符号位1,所以左边补两个1,结果为11111110,对其再求补码得到-2。"左移乘法,右移除法"

因此x>>1可以用来表示x/=2;

他们的头文件为<algorithm>

       lower_bound返回的是大于或等于val的第一个元素位置而upper_bound返回的是大于val的第一个元素位置

       因为使用的是二分法,所以时间复杂度为O(logn)。

   注意返回的是地址!!若要用数组下标记得最后减去数组首地址。 

可以用0,-1,127(最大值)来初始化,不能用1。      

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值