语法基础

1. scanf

  1. 空白字符: 指的是空格、回车和制表符
  2. 基本原理: 从缓冲区读入字符
  3. 对于整数和字符串:忽略前面的空白字符 读入后不读入空白字符 默认以空白字符作为各变量之间的分割
  4. 对于字符:没有分割 空白字符会被读入

2. 字符串

  1. 任何封装好的函数传入的是一个指针 指针默认指向0
  2. 如果要从1开始读入 那么就要把头指针++
  3. gets 的读入忽略空格但不忽略回车

3 .bitset

bitset<N> s //开N位bitset
s.count() // 返回1的数目
s.set(k,v)//第k位返回v
| &  ^ >> << ~ == != //支持运算
s[k]
s.set() //全部变成 1
s.reset()//全部变成0

4.sort的cmp

bool cmp(int x,int y)
{
	if(  (x&1)&&!(y&1) ) return 0;
	if(  !(x&1)&&(y&1)) return 1;
	return x>y;
}

表示的含义是 如果cmp的值为1, 那么就把x放到y的前面.

默认的cmp函数是

return x<y;

5. 语法易错

  1. pow()//是一个浮点函数

  2. 数字开longlong要写成\(114ll\)

  3. 部分oj在开空间过大的时候可能会返回RE

  4. 多组数据都用memeset赋值的时候可能会TLE 要分析时间复杂度 建议使用fill

6.模板

模板函数:

template <typename T>
T read()
{
    T x=0,f=0,c=getchar();
    while(c<'0'||c>'9'){if(c=='-')f=1;c=getchar();}
    while(c>='0'&&c<='9'){x=x*10+c-'0';c=getchar();}
    return f?-x:x; 
}

n=read<int>()//调用

模板类

template <typename T1,typename T2>
class pair
{
	T1 a; T2 b;
};

pair<int,int> p;//调用
posted @ 2021-12-28 20:13  __iostream  阅读(46)  评论(0)    收藏  举报