ACM-实用C++自带算法函数及其用法

本文最后更新于:December 18, 2021 am

记录一些ACM中可能会用到的一些C++自带函数,记录其函数和具体用法。

一. 头文件

1. 主要算法头文件

1
2
3
4
#include<bit/stdc++.h> //万能头文件,包含了目前c++所包含的所有头文件。可替换所有头文件。但有部分编译器不可用。
#include<algorithm> //包括很多常用函数
#include<numeric> //只包括几个在序列上面进行简单数学运算的模板函数,包括加法和乘法在序列上的一些操作。
#include<functional> //定义了一些模板类,用以声明函数对象。

2. 一些其他常用头文件

#include< iomanip>头文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include<iomanip>
1.控制输出小数点位数(根据保留位数的后一位按照四舍五入舍留)
例:输出保留小数点后3
double n=23.15655;
cout<<fixed<<setprecision(3)<<n<<endl; //23.157
double n=23.15645;
cout<<fixed<<setprecision(3)<<n<<endl; //23.156
//注:以后除特别说明外,所有的输出都是一对一。即若有多个输出,则需要多次书写相同的格式。如
cout<<fixed<<setprecision(3)<<n<<fixed<<setprecision(3)<<m<<endl;

2.设置字段宽度(空格加数字总共占几个宽度)
setw(int n);
例:输出数字,并设置宽度分别135
int n=7;
cout<<setw(1)<<n<<endl; //7 数字前面没有空格
cout<<setw(3)<<n<<endl; // 7 数字前面2个空格
cout<<setw(5)<<n<<endl; // 7 数字前面4个空格
int n=17;
cout<<setw(3)<<n<<endl; // 17 数字前面1个空格
cout<<setw(5)<<n<<endl; // 17 数字前面3个空格
cout<<setw(7)<<n<<endl; // 17 数字前面5个空格

3.设置其他字符填充(是字符!!!)
通常配合setw实用
例:输出7位,开始s和结束t,中间都是b
cout<<'s'<<setfill('b')<<setw(7)<<'t'<<endl; //sbbbbbbt t前面6个b
cout<<'s'<<setw(7)<<setfill('b')<<'t'<<endl; //sbbbbbbt t前面6个b
cout<<setw(7)<<'s'<<setfill('b')<<'t'<<endl; // st s前面6个空格

二. String相关

1. 修改string对象的方法

1) s.insert()

1
s.insert(p,t)

三.数字与字符串函数

3.1.1 数字转字符串(C)

1
2
3
4
5
#include<string.h>
int a=152;
char s[100];
sprintf(s,"%d",a);
int len=strlen(s); //3

3.1.1 字符串转数字(C)

int sscanf(const char *str, const char *format, …)

str – 这是 C 字符串,是函数检索数据的源。
format – 这是 C 字符串,包含了一个或多个:空格字符、非空格字符 和 format 说明符。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main(){
int day, year;
char weekday[20], month[20];
char* dtm="Saturday March 25 1989";
sscanf(dtm,"%s%s%d%d",weekday,month,&day,&year);

printf("%s %d, %d = %s\n",month,day,year,weekday);
return 0;
}
//输出
March 25, 1989 = Saturday

3.2.1 数字转字符串(C++)

1

3.2.2 字符串转数字(C++)

字符串分隔

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include<iostream>
#include<string>
#include<sstream>
#include<algorithm>
using namespace std;
int main(){
string str="i am a boy";
istringstream is(str);
string s;
while(is>>s) {
cout<<s<<endl;
}
return 0;
}
//输出
i
am
a
boy

字符串转数字

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include<iostream>
#include<string>
#include<sstream>
#include<algorithm>
using namespace std;
int main(){
string str="5 15 32 85";
istringstream is(str);
//is.clear(); //clear()仅仅清空标志位,并没有释放内存。利用stringstream.str("")来清空stringstream。
int s;
while(is>>s) {
cout<<s<<endl;
}
return 0;
}
//输出
5
15
32
85

四.string 中的函数

4.1

4.1.1 stod()

4.1.2 stof()

4.1.3 stoi()

4.1.4 stol()

4.1.5 stold()

4.1.6 stoll()

4.1.7 stoul()

4.1.8 stoull()

4.2

4.2.1 atoi()

持续更新中······


本文作者: 墨水记忆
本文链接: https://tothefor.com/DragonOne/300345353.html
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!