C++ bugFree!

C++

* 要写分号!

 

* min/max函数只能比较两个数。 min(a,b,c) 会出错,要用 min(a,min(b,c)) 

 

* min/max的输入不能一个是sizetype, 一个是int

 

* void move(stack<int> &s1, stack<int> &s2)   不加引用时是值传递

 

* numeric_limits<int>::max()   要记得加<int>类型参数

 

* cout<<5&3<<endl; 是不对的! 会有优先级问题  "<<"被认为是左移,优先级比与(&)高

 

* & 比 == 的优先级还要低! (5&4)==0 要加括号!

 

* 左移右移不会改变变量本身的值! 

 

* for(int i=0; preorder[i]!=val; i++)  如果之后要用i的值,要把i定义到for循环的外面去!!!

 

* for(int i=0; preorder[i]!=val; i++) 后面要记得打分号,否则后面的语句就被放到循环里去了 >..< 

 

* binary search时,mid = (left+right)/2 , 但是有时left+right会溢出, 所以

  mid = (left/2+right/2) + (left%2+right%2)/2;

或者 

  mid = lower + (upper - lower) / 2;

* string a=“123”;
max(3, (int)a.length())  //  must transfer a.length() into int  
 
* (1<<rh)-1; 减号比移位符号优先级高
 
* 定义对象指针数组时,要用memset做初始化,见http://www.cnblogs.com/XingyingLiu/p/5224556.html
 
* priority_queue 的top是read only的,不能直接修改
 
* 类定义成员的时候不能初始化, 要在构造函数中初始化
 
* 如果s是空的vector, 那s.size()-1 是极大值。 因为s.size() 是unsigned 类型.
 
* abs(INT_MIN) 会溢出, long 类型要用labs算绝对值
 
* 不能直接把 char 拼接成 string, 也不能用 to_string 把 char 变成 string, 要用 stringstream. http://www.cplusplus.com/forum/beginner/4967/
非空string + char 会变成string, 但是 “” + char 会变成奇怪的东西。
 

转载于:https://www.cnblogs.com/XingyingLiu/p/5115369.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值