1 scanf 为什么比cin快?
比较合理的解释:默认情况,cin与stdin总是保持同步的,也就是说这两种方法可以混用,而不必担心文件指针混乱,同时cout和stdout也一样,两者混用不会输 出顺序错乱。正因为这个兼容性的特性,导致cin有许多额外的开销,如何禁用这个特性呢?只需一个语句 std::ios::sync_with_stdio(false);,这样就可以取消cin于stdin的同步了,此时的cin就与scanf差不多 了。
————————————————
版权声明:本文为CSDN博主「穆江浩」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u012841718/article/details/53509883
2 全局变量初始化
https://www.cnblogs.com/catch/p/4314256.html
3 #LC8:字符串转换整数
模拟题,有一点,越界处理
class Solution {
public:
int myAtoi(string s) {
int n = s.size();
int sign = 1;
long long ans = 0;
int i = 0;
while(i < n && s[i] == ' ') i++;
if(i == n) return 0;
if(s[i] == '-')
{
sign = -1;
i++;
}
else if(s[i] == '+') i++;
else if(isalpha(s[i]))
return 0;
while(i < n && isdigit(s[i]))
{
int t = s[i] - '0';
if(ans > (INT_MAX - t) / 10)//送到右侧判断, 值得学习
return sign == 1 ? INT_MAX : INT_MIN;
else
ans = ans * 10 + t;;
i++;
}
if(sign == -1)
ans = 0 - ans;
return ans;
}
};