- C++
一些最基础的内容
- 2024-8-3 21:45:06 @
(1)整数类:short;int;long;long long; (unsigned)//希望有unsigned long long long long long long long......
(2)浮点型:float;double;
(3)其他类:bool;char;string;struct(用于定义数据类型);
2.变量(数组、函数、结构体等) 命名规则:
(1)只能有字母、数字和_;
(2)数字不能开头;
(3)名称严格区分大小写,且不能重复;
3.编程中的结构:
(1)顺序结构; //顺序结构yyds
(2)分支结构:
if(){ } else { }
switch(){ }
?:
(3)循环结构:
while(){ }
do{ }while()
for(;;) { }
(4)循环跳转:
break 从break语句开始,退出当前循环
continue 从continue语句开始,跳过本次循环
4.数组:一个存储多个数据的变量的集合。
(1)数组下标:从0开始,到size()-1结束.
(2)除char[]外,不能直接输入和输出
(3)初始化的方式a[]={0} ;
(4)二维数组的定义:如果一维数组中的元素又是一个数组,先行后列。
5.字符数组:char a[101] ;
(1)求长度: strlen(a)
(2)带空格的输入:cin.getline(a,101);
(3) 字符串连接:strcat(a,b); 将B连接在A的后面
字符串复制:strcpy(a,b); 将B复制给A
6.字符串string:string a;
(1)求长度: a.length();
(2)带空格的输入:getline(cin,a);
(3) 字符串连接:a+=b; 将B连接在A的后面
字符串复制:a=b; 将B复制给A
字符串截取:s=s.substr(a,b) ; 从下标a开始截取b个字符
字符串插入:s.insert(a,b) ; 在下标a前插入字符串b
字符串查找:s.find(a); 在字符串s中查找字符串a,找到返回第一位字符的下标,
未找到返回unsigned long long的最大值
7.函数:
(1)包含:函数名、函数的参数及数据类型、函数的返回值类型(void)、函数体
(2)常用函数:max(a,b); min(a,b); 要求a,b数据类型相同
整数:abs(a); 浮点数:fabs(a); 数据类型区别
sqrt(a); pow(a,b); 返回值为double类型
sort(a,a+n); 注意下标区别
swap(a,b); 无特殊要求。
memset(a,0,sizeof(a)); 数组初始化
(3)自定义函数:
(1)质数判断:时间复杂度为 根号n。
int zs(int x){ if(x<=2) return 0; for(int i=2;i*i<=x;i++) if(x%i==0) return 0; return 1; }
(2)数字翻转
int fz(int x){ int a=0; while(x) { a=a*10+x%10; x/=10; } return a;}
(3)进制转换 (十进制转二进制:递归实现)
void zh(int x) { if(x==0) return ; zh(x/2); cout<<x%2; }
(4)递归 (fib)
int fib(int x){ if(x<=2) return 1; return fib(x-1)+fib(x-2); }
8.进制转换与原反补码
(1)进制转换:模除法。
(2)特殊的进制转换:
(1)二进制与八进制:
二转八:二进制从最低位开始每3位转换为一个八进制的1位,顺序书写即可。
八转二: 八进制的每位转换成一个3位的二进制数,顺序书写即可。
(2)二进制与十六进制:
二转十六:二进制从最低位开始每4位转换为一个十六进制的1位,顺序书写即可。
十六转二:十六进制的每位转换成一个4位的二进制数,顺序书写即可。
(3) 原码:用最高位表示数字的符号,0为正数,1为负数
反码:正数不变,负数除符号位外,全部取反
补码:正数不变,负数为反码+1
9.运算优先级
() 大于! ++ -- 大于 * / % 大于 + - 大于 >> << 大于 > >= < <=
大于 == != 大于 && 大于 || 大于 = += -=...
10.输入与输出
(1)cin 与 cout iostream
(2)scanf 与 printf cstdio
(3)速度:scanf/printf快于cin/cout '\n'快于endl
(4) %d-int/bool %f-float %lf-double %lld-long long %c-char %s-char[]
%u-unsigned int %llu-unsigned long long
%5d-整数至少5位场宽,右对齐 %-5d-整数至少5位场宽,左对齐
%5s-字符串场宽至少为5,右对齐 %-5s-字符串场宽至少为5,左对齐
%5.3s-字符串从右往左截取3位,场宽5,右对齐 %-5.3s-字符串从右往左截取3位,场宽5,左对齐
%5.3lf-保留3位,场宽5,右对齐 %-5.3lf-保留3位,场宽5,左对齐
iomanip cout<<fixed<<setprecision(3)<<a; 保留3位小数
11.位运算:
(1) & 二进制中,有0则为0 。 if(x%2 == 1)相当于 if(x&1 == 1)
(2) | 二进制中,有1则为1 。
(3) ^ 二进制中,相同为0,不同为1 。a^a=0 a^0=a
(4) ~ ~a=-a-1
(5) >> a>>=1相当于a/=2
(6) << a<<=1相当于a*=2
12.排序:
(1)冒泡:for(i 表示轮) for(j 表示下标) 比较与交换
(2)选择:for(i 表示轮) 找最小(大)值, 与第i个进行交换
(3)插入:for(i 表示轮) 把当前元素依次向前对比和交换,比其小则停止
(4)桶排:用数组下标进行排序的方式
(5)快排:sort(a,a+n)
(6)结构体排序:使用struct 和 sort进行排序,需要自定义cmp函数
13.高精度:
(1)加法和减法:用数组的每一位存数字的每一位。
(2)步骤: 存储-转换-计算-特判-输出
14.递推与递归:
(1)递推用循环、递归用函数
(2)递推关系与初始条件
15.文件流//真的?
(1) freopen("1.in","r",stdin);
(2) freopen("1.out","w",stdout);
1 条评论
-
2023zhangzhuoran LV 6 @ 2024-8-4 19:52:38
赞
- 1