刷leetcode常用的c++库
c++中字符串和数互转
c++字符串转为数
方法一:使用std::stoi
1 |
|
方法二:使用c库函数atoi
1 |
|
c++数转为字符串
方法一:使用c++11中的std::to_string()函数1
2
3
4
5
6
7
8
int main()
{
double a = 1.2;
std::cout<<std::to_string(a)<<std::endl;
return 0;
}
方法二:使用stringstream将数转换为字符串
1 |
|
C++中的IO流区别
scanf() 和 cin
两者读取数据时,均以空白字符(空格,Tab,回车)为结束标志位。空白字符会被留在IO流中。当读取数据时,如果开始遇到的字符为空白字符,会一直读取,并且空白字符会被忽略,直到遇到第一个非空白字符。
getline
getline以换行符为结束标志位,空格和Tab也会被读入。和scnaf以及cin的区别是,getline不会将换行符留在io流中,而是会读出来,但是会忽略换行符。
cctype头文件中的函数
函数名 | 说明 |
---|---|
isalnum(c) | 当c是字母或数字时为真 |
isalpha(c) | 当c是字母时为真 |
iscntrl(c) | 当c是控制字符时为真 |
isdigit(c) | 当c是数字时为真 |
isgraph(c) | 当c不是空格但可打印时为真 |
islower(c) | 当c是小写字母时为真 |
isprint(c) | 当c是可打印字符时为真(即c是空格或c具有可视形式) |
ispunct(c) | 当c是标点符号时为真(即c不是控制字符、数字、字母、可打印空白中的一种) |
isspace(c) | 当c是空白时为真(即c是空格、横向制表符、纵向制表符、回车符、换行符、进纸符、中的一种) |
isupper(c) | 当c是大写字母时为真 |
isxdigit(c) | 当c时十六进制数字时为真 |
tolower(c) | 如果c是大写字母,输出对应的小写字母;否则原样输出c |
toupper(c) | 如果c是小写字母,输出对应的大写字母;否则原样输出c |
字符串查找
- 使用s.find(args)函数:查找s中args第一次出现的位置,没有则返回s.npos
- 使用s.rfind(args)函数:查找s中args最后一次出现的位置,没有则返回s.npos
- 使用泛型函数find(beg,end,val),如果没有找到val则返回end
常用的泛型算法
查找算法
find(beg,end,val): 返回一个迭代器,指向输入序列中第一个等于val的元素。
排序算法
sort(beg,end): 默认为升序
sort(beg,end,comp): comp为比较函数
1 |
|
最小值和最大值
1 | min(val1,val2) |
返回val1和val2中的最小值/最大值,或initializer_list中的最小值/最大值。两个实参的类型完全一致。参数和返回类型都是const的引用,意味着对象不会被拷贝。
1 | minmax(val1,val2) |
返回一个pair(位于头文件\
1 | min_element(beg,end) |
min_element和max_element分别返回指向输入序列中最小和最大元素的迭代器。minmax_element返回一个pari,其first成员为最小元素,second成员为最大元素。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 CJX_BLOG!