cpp常用函数
本篇旨在记录算法学习过程中所遇所用到的c/c++函数及技巧 以备复习
C++ String类
常见函数:
插入: insert(位置,待插入字符串)
删除: erase(pos , len) pos
表示要删除的子字符串的起始下标,len 表示要删除子字符串的长度。如果不指明 len 的话,那么直接删除从 pos 到字符串结束处的所有字符(此时 len = str.length - pos)。提取字符串:string substr (size_t pos = 0, size_t len = npos) const;
pos 为要提取的子字符串的起始下标,len 为要提取的子字符串的长度。字符串查找
- find():第一个参数为待查找的子字符串,它可以是 string 字符串,也可以是C风格的字符串。第二个参数为开始查找的位置(下标);如果不指明,则从第0个字符开始查找。
- rfind():rfind() 和 find() 很类似,同样是在字符串中查找子字符串,不同的是 find() 函数从第二个参数开始往后查找,而 rfind() 函数则最多查找到第二个参数处,如果到了第二个参数所指定的下标还没有找到子字符串,则返回一个无穷大值4294967295。
- find_first_of():find_first_of() 函数用于查找子字符串和字符串共同具有的字符在字符串中首次出现的位置
例:1
2
3
4
5
6
7string s1 = "first second second third";
string s2 = "asecond";
int index = s1.find_first_of(s2);
运行结果:
Found at index : 3
本例中 s1 和 s2 共同具有的字符是 ’s’,该字符在 s1 中首次出现的下标是3,故查找结果返回3
数值转换 链接
其他用法 链接
string数值转换
char转string
格式化输出
格式字符有d,o,x,u,c,s,f,e,g等。
%d:就是普通的输出
%2d:是将数字按宽度为2,采用右对齐方式输出,若数据位数不到2位,则左边补空格
%02d:和%2d差不多,只不过左边补0
%d: 整型输出,%ld长整型输出,
%o: 以八进制数形式输出整数,
%x: 以十六进制数形式输出整数,或输出字符串的地址。
%u: 以十进制数输出unsigned型数据(无符号数)。注意:%d与%u有无符号的数值范围,也就是极限的值,不然数值打印出来会有误。
%c: 用来输出一个字符,
%s: 用来输出一个字符串,
%f: 用来输出实数,以小数形式输出,默认情况下保留小数点6位。
%.100f: 用来输出实数,保留小数点100位。
%e:以指数形式输出实数,
%g:根据大小自动选f格式或e格式,且不输出无意义的零
技巧
判断素数
1 |
|
判断闰年
1 |
|
日期模版
题目描述:有两个日期,求两个日期之间的天数,如果两个日期是连续的我们规定他们之间的天数为两天
1 |
|
判断星期几
利用基姆拉尔森计算日期公式 w=(d+2m+3(m+1)/5+y+y/4-y/100+y/400)
1 |
|
Repeater
代码:
1 |
|
二分搜索模版
1 |
|
矩阵旋转
1 |
|