C++ 基本语法
头文件
在编程竞赛中,我们常见一个头文件:
include <bits/stdc++.h>
发现它是部分C++中支持的一个几乎万能的头文件,包含所有的可用到的C++库函数,如///.
在编程竞赛中,使用这个头文件是一个好的想法,特别是当你在选择头文件时想减少时间,我们更加专注于找到算法解决问题而不是软件工程。而从软件工程的视角,我们最好最小化包含头文件,如果你包含了一些你可能不会用到的头文件,就会增加不必要的编译时间和程序大小。
bits/stdc++的缺点
bits/stdc++.h 不是GNU C++库的标准头文件,所以如果你在一些编译器(除了GCC)上编译你的代码,可能会失败,比如MSVC没有这个头文件。
使用它会包含很多不必要的东西,并且会增加编译时间
这个头文件不是C++标准的一部分,所以是不可移植的,应该尽量避免。
尽管标准中有一些通用的头文件,但还是应该避免使用它来代替特定的头文件,因为编译器在每次编译转换单元时都实际地读取并解析每个包含的头文件(包括递归包含的头文件)。
bits/stdc++的优点
在比赛中,使用这个文件是一个好主意,当你想减少时间浪费在做选择的时候;特别是当你的排名对时间很敏感的时候。
这还减少了编写所有必要头文件的所有杂务。
你不必为使用的每个函数都记住GNU c++的所有STL。
当然也可以用#include #include
cin>> scanf() //表示输入
cout<< printf() // 表示输出
对象名 | 所属类 | 对应设备 | 含义 |
---|---|---|---|
cin | istream | 键盘 | 标准输入,有缓冲 |
cout | ostream | 屏幕 | 标准输出,有缓冲 |
cerr | ostream | 屏幕 | 标准错误输出,无缓冲 |
clog | ostream | 屏幕 | 标准错误输出,有缓冲 |
C++中的输入、输出头文件iostreami ——input 输入o ——output 输出stream —— 流C语言中的头文件以.h后缀,C++中头文件不加后缀。
C语言中的string.h头文件,C++用cstring,C语言中的math头文件,C++使用cmath头文件。
这不只是形式上的改变,其实现也有所不同。
再结合不同的函数,使用不同的头文件
如#include
操作符 | 功能 |
---|---|
setfill(char c) | 设置以c表示的填充字符 |
setprecision(int n) | 设置以n表示的数值精度 |
setw(int n) | 设置以n表示的域宽 |
using namespace std;
C++标准库中所有标识符并定义于一个名为std的命名空间中,std称为标准命名空间(standard,标准的)。
引入标准命名空间方法:using namespace std;
注意:语句末尾的分号不能少
主函数
主函数main()是程序的入口,每个程序都需要一个主函数。主函数返回值为int型。
int main()
{
cout<<“hello,world!”<<endl;
return 0;
}
注意:程序末尾返回0,这里的输出的endl是换行的意思相当于回车。
C++从主函数开始,大致的框架就是这样了。
一些操作符
操作符 | 功能 |
---|---|
oct | 以八进制格式输出数据 |
dec | 以十进制格式输出数据 |
hex | 以十六进制格式输出数据 |
endl | 插入换行符并刷新输出缓冲流 |
uppercase | 十六进制输出时字母大写 |
skipws | 输出时跳过空白 |
flush | 刷新流 |
left | 左对齐 |
right | 右对齐 |
scientific | 科学记数法输出 |
fixed | 定点数方式输出 |
showbase | 输出前缀(八进制0,十六进制0x) |
showpoint | 输出浮点数时带小数点 |
showpos | 输出正整数时加“+” |