1.abs()绝对值,pow()次方,sqrt()开方,使用时需要加上头文件cmath

2.reverse(a,b),将某数组部分全部倒序,a为起始地址,b为终点地址,倒序部分不包括b。使用时需要加上头文件algorithm

3.C++的几种输入输出方式:
cin:遇到空格或换行结束
cin.get(字符变量名),用来接收字符,只获取一个字符,可以接收空格,遇回车结束
cin.get(数组名,接收字符数目),用来接收字符串,可以接收空格,遇回车结束。
cin.get(),没有参数,主要用于舍弃输入流中不需要的字符,或者舍弃回车,即舍弃输入流中的一个字符。
cin.getline():接收一个字符串,可以接收空格等,最后一个字符为‘\0’
getchar():获取一个字符,函数值为获取的字符

4.list用法:https://www.cnblogs.com/lalalabi/p/5060210.html

5.接收一段有规律格式不定长的数据可以用下面方式,EOF表输入的结束:

while(scanf("%d %d",&m,&n)!=EOF){
        ....
    }

6.struct结构体的定义:

struct name{
	...
};

结构体的初始化常用指针,假设有个结构体Stu,有name的属性,那么使用应该如下:

Stu *s=new Stu();
string n=s->name;

7.vector序列容器,一个长度可变的序列,用来存放 T 类型的对象。必要时,可以自动增加容量,但只能在序列的末尾高效地增加或删除元素,使用时需要加上头文件vector
常用函数:
begin():返回容器首地址对应指针
end():返回容器尾地址对应指针
push_back():添加元素
emplace_back():添加元素,相比push_back()更高效,并减少了内存的浪费
size():返回容器大小

8.对于数据量较大的情况应该使用scanf和printf输出,避免超时

9.vector获取指定位置元素直接用中括号加序列号即可,如s[1]。list数组就不能像vector一样获取指定位置的元素

10.用string的compare方法来比较两字符串之间是否相等,如果相等返回值为0

string str1,str2;
//相等
if(str1.compare(str2)==0){
	...
	}

11.stringstream用于C++类型转换,可以理解成吃进去一种数据类型吐出来你需要的数据类型,使用时需要加上头文件sstream,下面举一个string转int的例子,其他类型也类似:

string a="123";
int b;
stringstream ss;
ss<<a;
ss>>b;//这一步结束后,b为123