1.if(flag)等价于.if(flag!=0),简写要弄清含义。
2.std::ios::sync_with_stdio(false); 用这个语句,取消cin,cout与stdio的同步,注意不要打错了。
3.在循环中尽量不要把循环变量直接赋值给某一变量,容易出错。循环中需要判定的变量注意每次是否要初始化。
4.题目中要求输入一行字符串并且最后以换行符结束用getline(cin,s)。
5.对于全局变量最大值N设置为const常量更安全
6.类型转换:string 转int(stringstream可以吞下任何类型,根据实际需要吐出不同的类型。)
stringstream x;
s[0] = string("1");
s[1] = string("2");
s[2] = string("4");
s[3] = string("168819");
x<<s[3];
x>>n;
cout<<n;
7.斐波那契递归方法的时间复杂度是O(2^n),空间复杂度是O(n)。
例如计算f(8)过程,空间复杂度O(n)是因为操作系统的压栈,最多就n个函数,所以是n个空间。
8. char a1[] ="123";a 1初始化的是一个字符串,字符串中包含一个‘/0’,存储单元为4;
char a1[] ={'1','2','3'};存储单元为3;
9.深拷贝是在堆中单独开辟一块空间,把一个对象的属性值拷贝过来,两者互不影响。
浅拷贝是把对象的引用值拷贝过来,两者同时变化。
10.用vector容器创建一个m*n大小的二维数组:
vector<vector<int>> a(m);
for(i=0;i<m;i++){
a[i].resize(n);
}