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;