# 1.setw()场宽函数
输出时如果setw里的数字比后面字符串、
数字长度大,会在前面用英文空格补全
例:
cout << setw(8) << 12345 << endl;
会在前面补上3个英文空格
2. clock()计算当前程序运行时间函数
检测程序运行时间
#include
clock_t startTime, endTime;
startTime = clock();//计时开始
int a[10];
int b[10] = {};
cout << a[0] << endl;
cout << b[0] << endl;
endTime = clock();//计时结束
cout << (double)(endTime - startTime) / CLOCKS_PER_SEC << endl;
3.sizeof()会计算出数组在内存中预分配字节的大小
4.strcpy,strcmp,strcat,stricmp操作字符串函数
关闭SDL检查:否则会报错。项目-属性-C/C++-常规-SDL检查-否
strlen会循环计算出数组的长度
strcpy字符串拷贝,把b字符串例的内容赋值给a字符串
strcpy(a,b)返回值a
strcat字符串连接函数,把b字符串的内容连接到a字符串的末尾
strcpy(a,b)返回值a
strcmp判断两个字符串是否一致,
如果一样(包括大小写),那么函数的结果就是0
stricmp判断两个字符串是否一致,
如果一样(不区分大小写),那么函数的结果就是0
5.rand()随机数方法
srand()随机种子,如果不设置,默认是1
随机数种子每次都不一样才能保证随机数每次都不一样
srand(time(0));
int size = rand() % 10; //1-10数字随机
cout << time(0) << endl;
6.常用数学函数
绝对值
abs(-3.31564);
幂函数(值,次数)
pow(5, 2);
平方根函数
sqrt(16);
7.swap()交换值函数
int a = 10;
int b = 20;
swap(a,b);
使a,b两个变量的值交换
8.string()字符串函数
- string转char相互转换
c_str()和data()方法实现string转char*
string str = "hello";
const char* str2 = str.c_str();
const char* str3 = str.data();
cout << str2 << endl;
cout << str3 << endl;
char*/char[]转string直接赋值即可
const char* str1 = "hello";
char str2[] = "hello";
string str;
str = str1;
str = str2;
- string长度的方法
length()和size() - string判空的方法
empty() - string判断字符串是否相等的方法
compare()//返回值0是相等,-1是不相等 - string找其中字符的方法
find()//返回值是找到的位置,如果没找到返回乱码 - string插入字符的方法
str.insert(索引,插入字符) - string字符串int类型互转
int a = 123;
str = to_string(a);
int b = atoi(str.c_str());
cout << b << endl; - string截取字符串的方法
str.substr(起始位置,长度);
单个参数意思是起始位置拷贝到末尾
不加参数意思是拷贝整个字符串
9.函数的递归
函数递归的使用
递归次数没有限制,限制的容量,为2M
void show(int a) {
cout << a << endl;
if (a > 0) {
a--;
show(a);
}
}
10.模板函数
定义一个函数的模板,当前函数的参数类型是不确定的,使用函数的时候才确定数据类型
在定义不确定的数据类型中有2种写法typename/class,意思是定义一个数据类型
原理:在函数使用的时候,根据实参的类型推导出模板<>中的类型到底是什么
template<typename abc>
abc addNumber(abc a, abc b) {
return a + b;
}
cout << addNumber(3, 7) << endl;
cout << addNumber(3.12f,2.1f) << endl;
- 多类型模板
使用模板的时候务必要注意,模板函数内部能否对推导出来的数据类型进行正确的操作
如果推导出的数据类型,不能在函数里进行正确操作的话,可以考虑使用函数重载
template<typename T1>
T1 addNumber(T1 a, T1 b) {
return a + b;
}
string addNumber(string a, string b) {
return a + b;
}
string a = "abc";
string b = "dag";
cout << addNumber(a,b) << endl;
int c = 2;
int d = 3;
cout << addNumber(c, d) << endl;
- 补充
模板类
template<typename T1,typename T2>
class Base {
public:
T1 a;
T2 b;
};
Base<int,float> b;