C++写法
C++写法
程序框架
#include <iostream>
using namespace std;
int main()
{
return 0;
}
头文件
//C++中可以引用C语言的所有头文件,引用时在前面加上c就可以了
例如:
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <cmath>
#include <ctime>
C++常用头文件
#include <iostream>
#include <algorithm> // 包括 min() max() swap() sort()等常用函数
#include <string> //字符串
#include <iomanip> // 保留小数
//包括以后会用到的(后面会讲,现在了解即可)
#include <vector>
#include <list>
#include <stack>
#include <string>
#include <queue>
#include <deque>
#include <map>
#include <set>
#include <unordered_map>
#include <unordered_set>
#include <bitset>
输出句子
//C++中使用 cout 输出 例:
#include <iostream>
using namespace std;
int main()
{
cout << "Hello World" << endl; // endl 为换行
return 0;
}
//输出为 Hello World
输入
整形
//和C语言一样,C++输入前同样需要定义变量
#include <iostream>
using namespace std;
int main()
{
int a, b;
cin >> a >> b; // C++中利用 cin 输入
cout << a + b << endl; //输出 a + b 的值
return 0;
}
字符型
//同整形
#include <iostream>
using namespace std;
int main()
{
char ch;
cin >> ch;
cout << ch << endl;
return 0;
}
浮点型
#include <iostream>
using namespace std;
int main()
{
double a;
cin >> a ;
cout << a << endl;
return 0;
}
在做题时,题目可能会涉及到保留几位小数,在C++中通常有两种方法
方法一
//引用 printf 注:要包含#include <cstdio>头文件
#include <iostream>
#include <cstdio>
using namespace std;
int main()
{
double a;
scanf("%lf", &a);
printf("%.2f\n", a);
return 0;
}
方法二
//引用C++的函数 注:需要包含#include <iomanip>头文件
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
double a;
cin >> a;
cout.setf(ios::fixed);
cout << fixed << setprecision(2) << a << endl;
return 0;
}
同步
// cin 与 scanf 在小数据量读入时差别不大,但是当数据量很大的时候 cin //的速度明显慢于 scanf ,
//甚至在读入数据时就会超时(TLE),为了减小读入时间的差距,可以选择关闭同步
//(仍建议大数据量使用scanf,因为就算关闭同步,读入时间也会比scanf慢)
#include <iostream>
using namespace std;
int main()
{
ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);//关同步
return 0;
}
新增类型
布尔类型
bool leap; // 布尔类型:只有 true 和 false
leap = true;
leap = false
字符串类型
string s; //字符串类型
字符串输入
方法一 直接赋值
string s = "asdasdasd";
方法二 使用 cin 输入
cin >> s; //字符串不包含空格
getline(cin, s); // 字符串中包含空格
字符串长度
string s;
cin >> s;
int len_1 = s.length(), len_2 = s.size(); // length()与size()无差别
cout << len_1 << ' ' << len_2 << endl;
字符串相加
string s1, s2;
cin >> s1 >> s2; //例如输入s1 为asd, s2 为jkl
s1 += s2;
cout << s1 <<endl; //输出为asdjkl
字符串比较
//按照字典序比较
//例如判断两字符串是否相等
string s, ss;
cin >> s >> ss;
if (s == ss)
cout << "YES" << endl;
else
cout << "NO" << endl;
字符串输出
方法一
string s;
cin >> s;
cout << s << endl;
方法二
string s;
cin >> s;
int len = s.length();
for (int i = 0; i < f; i ++)
cout << s[i];
cout <<endl;
方法三
string s;
cin >> s;
for (auto it : s) // STL遍历容器的方法,目前了解即可
cout << it;
cout <<endl;