本蒟蒻在这篇文章中收集了一些比较简(za)单(luan)的小知识点,所以可用Ctrl+F查找你们要找的东西虽然也没几个知识点
- 快读代码:
int read(){
int c=getchar(),s=0,v=1;
while(c<'0'||c>'9'){
if(c=='-') v=-1;
c=getchar();
}
while(c>='0'&&c<='9') s=s*10+c-'0',c=getchar();
return s*v;
}
-
补码就是负数在计算机中的二进制表示方法。(正数减一后取反)
-
正数的原码 = 反码 = 补码
-
负数的反码为原码各位取反(若有说明字长,最高位为符号位:0表正,1表负。不需取反,同补码);负数的补码为反码+1。
-
常用头文件: algorithm 、 cstdio 、 cmath 、 climits 、set 、 vector 、 map 、 queue 、 deque
-
树状数组详解(转载)
-
queue(队列)与deque(双端队列)的区别:
定义:queue< int > q; deque< int > dq;
共同:1、q/dq.empty() (判断是否为空,为空返回true)
2、 q/dq.size() (返回元素个数)
3、 q/dq.front() (返回对头元素)
4、 q/dq.back() (返回队尾元素)
差异: 1、queue只支持队尾插入( q.push(+元素) )和队尾弹出( q.pop() )
deque不仅支持队尾插入( dq.push_back(+元素) )和队尾弹出( dq.pop_back() ),还支持对头插入( dq.push_front(+元素) )和对头弹出( dq.pop_front() )
2、queue清空需自定义:
void clear(queue<int>& q) {
queue<int> empty;
swap(empty, q);
}
deque自带清空函数: dq.clear()