刷题笔记总结

1.if判断语句注意中间是if(a==b)

2.scanf输入的时候注意别忘了&&。

3.输入的时候尽量采用循环输入,否则不通过。

4.排序问题如果是需要稳定排序,可以使用stable_sort(),其用法和sort相同。

5.当出现段错误时,观察是否是出现了数组定义过小。

6.stoi()函数存在于头文件,是将字符串转化为int类型,当定义s为字符串时,使用s[i]进行访问,s[i]的类型是char,所以stoi(s[i])这样的写法会编译出错。

7.使用while(getline(cin, s))循环读入数据的时候,int主函数的return 0要放在while的{}内和放在while{}外是不同的情况,要特别注意。

8.string s; s[i]为char类型,++之后相当于向后移动一位。

9.对于自定义的函数,有返回值时,一定要返回返回值,使用多个if时最后一个一定是else,否则可能编译不通过。

10.做题时注意数据范围,如果出现了负数,则应该考虑是否出现了溢出。

11.memset函数在头文件<string.h>中,使用memset时格式为memset(a, 0, sizeof(a))第二项为赋的值,一般只为0或-1.定义一位数组时,只有定义了其中的一项,其他项才默认为0,如果没有初始化,所有相不一定是多少。

12.队列queue使用front()和back()来访问头和尾结点,栈stack使用top()来访问栈顶。queue没有clear()函数。

13.如果用map映射对应的struct没有时,可以直接使用if(!=“”)来判断,不使用NULL。

14.map的find函数只能查找键,如果查到,返回键对应的迭代器,如果查不到返回end().

15.图和树的一个区别在于树的每个结点的入度只能是1,在做判断是否是树的题目的时候可以配合并查集解决问题。

16.有时候使用while()循环时,本地IDE可能跑不出结果,但是可以AC.