编程小技巧

来源:互联网 发布:儿童学编程 编辑:程序博客网 时间:2024/06/04 18:15

1 判断奇数:if(n & 0x1)  或用用 x % 2 != 0,不要用 x % 2 == 1,因为x可能是负 数。 

2 在判断两个浮点数 a 和 b 是否相等时,不要用 a==b,应该判断二者之差的绝对值 fabs(a-b) 是否小于某个阈值,例如 1e-9

3 用 char 的值作为数组下标(例如,统计字符串中每个字符出现的次数),要考虑到 char 可能是负数。有的人考虑到了,先强制转型为 unsigned int 再用作下标,这仍然 是错的。正确的做法是,先强制转型为 unsigned char,再用作下标


4 STL相关:

(1)用一个哈希表 unordered_map<int, bool> used 记录每个元素是否使用

(2)初始化(数组转化为map) 下标有关的操作

for (int i = 0; i < num.size(); i++) { mapping[num[i]] = i; } 

(3) 关于map的查找:mapping.find(gap) != mapping.end() 表示找到 


5 auto:用来声明自动变量,使用auto变量的优势是不需要考虑去变量是否被释放,比较安全吧


6 关于求解sum问题(一个无序set里面k个数sum可以逼近或等于一个给定的target)的可以先排序再 左右夹逼


0 0
原创粉丝点击