1.格式:
\#include<string.h>
//一定要有点加h
memset(a,0,sizeof(a));
2.计算机知识
8个二进制位为一个字节(B),最常用的单位,字节也就是B。
1KB (Kilobyte 千字节)=1024B
1MB (Megabyte 兆字节 简称“兆”)=1024KB
1GB (Gigabyte 吉字节 又称“千兆”)=1024MB
3.时间单位换算:
1秒=1000毫秒(ms)
1秒=1,000,000 微秒(μs)
1秒=1,000,000,000 纳秒(ns)
1秒=1,000,000,000,000 皮秒(ps)
1秒=1,000,000,000,000,000飞秒(fs)
4.写题注意用例范围:看下面的测试用例的规模和范围。
int占用4字节,32比特,数据范围为-21474836482147483647[-2^312^31-1]
- 一个字节是八个比特,即:1byte = 8bit
6.数字拆解:利用栈(s.empty() 如果栈为空返回true,否则返回false
s.size() 返回栈中元素的个数
s.pop() 删除栈顶元素但不返回其值
s.top() 返回栈顶的元素,但不删除该元素
s.push() 在栈顶压入新元素
\#include<stack>
stack<int> a;
while(n!=0)
{ a.push(n%10); n=n/10; }
7.进制转换
8.自带sort函数:#include less<数据类型>()//从小到大排序 ,greater<数据类型>()//从大到小排序,也可对字符串排序改为char
sort(a,a+n)*//将数组a[n]从小到大排列* *//若要从大到小排列* ,sort(a,a+5,greater<float>());
bool cmp(int a,int b)
{ return a>b; }
sort(a,a+n,cmp);
9.reverse()//将数组或字符串倒过来 —>algorithm
//数组
int a[10]={10,11,12,13,14,15};
reverse(a,a+4);
//字符串 #include<string> string str="abcdefghi";
reverse(str.begin()+2,str.begin()+6); 结果为abfedcghi
10.pow
double pow(double X,int Y);
float pow(float X,float Y);
float pow(float X,int Y);
long double pow(long double X,long double Y);
long double pow(long double X,int Y);
//pow(int,int)是错的,可用pow((float)int,int),即将前一个int类型强制转换为float
11.sqrt()*//开根号 —>math.h* double sqrt(double x);
12.使用map
#include
(1)key - value的对应
map<int, string> mapStudent
(2)第三种 用"array"方式插入
mapStudent[123] = “student_first”;
(3)map:迭代
迭代
map<string,int>::iterator iter;
for(iter=stu.begin();iter!=stu.end();iter++)
cout<<iter->first<<" "<<iter->second<<endl;
iter迭代器指向的数据类型是map<string,int>
iter->first输出map的key
iter->second输出map的value
(4)查找
1)stu.count("zhangsan")
找到 返回1
没找到 返回0
2)用find函数来定位数据出现位置,它返回的一个迭代器,当数据出
现时,它返回数据所在位置的迭代器,如果map中没有要查找的数
据,它返回的迭代器等于end函数返回的迭代器
iter=stu.find("zhagnsan");zhagsan是键
if(iter!=stu.end())
cout<<iter->first<<" "<<iter->second;
13.队列:
//queue常用函数
queue<int> que;
que.push(2);//插入2到队列最末
que.pop();//吐出队首元素,无返回值
que.front();//返回队首元素
que.back();//返回队尾元素
que.size();//返回队列大小
que.empty();//是否为空,空则返回true
14.常用字符处理函数
#include
(1)获取字符串长度
string str1 = "hello";
int length = str1.length();
(2)字符串连接
string str1 = "hello";
string str2="my girl!";
string str4=str1+str2;
(3)字符串比较
if (str1 < str3)
cout << "字符串比较结果:" << "str1<str2" << endl;
(4)字符串倒置
#include
reverse(str2.begin(), str2.end());
cout << "倒置串:" << str2 << endl;
(5)注意
虽然可以通过str[1]='A';这种方法改变str
但是如果开始不先初始化,然后通过下标的方式置值,将输出为空
no: string str; str[0]='0'; str[1]='a'; str[2]='c';
yes: string str="abc"; str[0]='0'; str[1]='a'; str[2]='c'; 初始化几位就输出几位
(6)字符串转字符数组:
char *d = new char[20]; //因为下一句那里不是直接赋值,所以指针类型可以不用const char *
strcpy(d, str1.c_str()); //c_str 取得C风格的const char* 字符串
cout << "d:" << d << endl;
(7)查找
返回位置:从0开始
cout << str1.find('h') << endl;
find(‘j',2);j表示所要查找的,2表示所要的查找开始位置
rfind从后往前找
参考:https://blog.csdn.net/qq_42481935/article/details/104304294