一些基础知识
C
c语言中声明语句前置。
c中没有
c不需要using namespace std;
C++
//一些头文件
#include <algorithm>
\(1Byte\)(字节)8位,\(int\) 4 \(Byte,double\) 8 \(Byte.\)
二进制表示
32767:0111 1111 1111 1111
-32768:1000 0000 0000 0000
1做最高位是负数

语法基础
- 注释
//
/* */
2.输入输出
cin cout
scanf printf 更快
getchar();putchar();都是对单个字符使用
putchar(66);输出'B'
%s字符串 用cin输入遇到空格回车都会停止读入
gets()可以读入空格,碰到回车停止

%c字符 给char赋值用单引号
%ffloat 默认输出6位
%lf双精度浮点数(double) %lld`长整型(long long)

%5d输出: 15;右对齐
%-5d输出:15 ;左对齐加-
float f = 1.2345678f;
printf("%10.2f",f);
//输出: 1.23(所有位有10位)
一个黑窗口分10列,1列8格,输出时碰见\t直接跳至下一列开头。

2.优先级

算术运算符 +-*% ++ --
逻辑运算符是 &&,||,!三种
赋值运算符 += -= *=
3.宏定义
define本质上是 文本替换。
宏可以带参数
#define sum(x,y) ((x)+(y))
#define square(x) ((x)*(x))
带参数的宏有别于函数。
最好用函数
define有风险,需要用 undef及时取消定义。
5.数据类型
1.void
2.bool(一字节8位)
3.char 字符常量用单引号'A'
转义字符:以""开头,后跟一个或多个字符表示特殊字符
\n 换行
\ 代表一个
' 代表一个'
\0 空字符 不是空格,就是什么都没有 可以作为字符串结束标志
大写+32=小写
'0'-48=0


4.float(整数部分+小数部分有效位是6~7位) double(有效15~16)
a E n : a * 10^n
a为整数时默认int,a为小数时默认double
1.23E3 -> 1230
0.23E-4
1.27f : float类型
5.unsignd表示无符号
short -32768~32767 (2^15-1)
unsigned short 0~65535
int -2147483648~2147483647 (2^31-1)
-
bool表达式 ? 表达式1 : 表达式2
如果bool表达式为true则返回表达式1的值,反之返回2的值。 -
循环
与break和continue搭配使用
for
while
do...while
7.switch找入口的语句
switch(表达式 必须是整型){
case 标号1(必须是常量且唯一):
语句1; break;//不用大括号
case 标号2:
语句2; break;//没有break会向下依次执行,不会像else一样忽略
default:
}
8.数组
注意边界,角标从0开始
9.结构体 struct
struct dlut{
int age;
int rank;
}niuma[45],www;
cout << www.age << " " << niuma[22].age;
- 类型转换

如果小数被转换为整数会丢失小数部分(做除法除不尽时也会舍弃小数部分),如果运算过程中有浮点数那么结果也会是浮点数。
字符串
scanf("%s",s);
gets(s); puts("0"); puts(a);
函数
strlen 长度
strcat(s1,s2) 把s2接到s1之后,返回s1
strcpy(s1,s2) 把s2复制到s1
strcmp(s1,s2) 比较s1和s2的大小,s1 > s2返回正整数,s1 = s2返回0,s1 < s2 返回负整数
函数调用不改变实参的值
要想变需要引用
void iswap(int &a,int &b);
如果函数中的参数类型是数组,会直接改变数值,因为形参中数组存储的是地址
递推递归
递推:已知推未知
递归:未知到已知再返回 记得<记忆化搜索>
STL
\(vector\)
vector
T可以是任何数据类型,如int,string,vector(构建多维数组)
v.empty() 为空则返回true
v.size() 返回元素个数
v.push_back() 向尾端添加元素
v.pop_back() 删除尾端元素
v[n]
v.begin()和v.end()返回的是位置,不是具体的元素值
v.sort()升序排序
v.unique() 去重
deque
priority_queue优先队列
stack
set
multiset
map映射
共有函数: = begin() end() size() empty()判断是否为空 swap() clear()
multimap
find reverse unique去重 sort lower_bound返回第一个大于等于x的元素的位置 upper_bound返回第一个大于x的元素的位置
bitset
string
pair

浙公网安备 33010602011771号