C++ 是一种面向对象的编程语言,也非常好理解。但有些知识需要背一背,我给大家整理了一些大干货供大家参考
一、标准库头文件
-
输入输出流
<iostream>
:定义了输入输出流对象,例如std::cin
,std::cout
,std::cerr
,std::clog
。
-
字符串处理
<string>
:定义了std::string
类,用于处理字符串。<cstring>
:C 风格字符串操作,如std::strlen
,std::strcpy
。
-
容器
<vector>
:定义了vector
容器<list>
:定义了list
容器<deque>
:定义了deque
容器<set>
:定义了set
和multiset
容器<map>
:定义了map
和multimap
容器<unordered_set>
:定义了unordered_set
和unordered_multiset
容器<unordered_map>
:定义了unordered_map
和unordered_multimap
容器
-
算法
<algorithm>
:定义了各种算法,如排序、查找等
-
输入输出流
<fstream>
:定义了文件流,如ifstream
,ofstream
,fstream
-
时间和日期
<chrono>
:定义了时间点、时间段等时间相关的功能
-
数学库
<cmath>
:定义了各种数学函数,如sqrt
,pow
。<cstdlib>
:包含了各种标准库函数,如malloc
,free
。
-
异常处理
<exception>
:定义了标准异常类,如exception
-
线程和同步
<thread>
:定义了线程相关功能<mutex>
:定义了互斥量和其他同步原语
-
输入输出流
<iomanip>
:定义了格式化输出的功能,如setw
,setprecision
-
智能指针
<memory>
:定义了智能指针类,如unique_ptr
,shared_ptr
,weak_ptr
-
类型特性
<type_traits>
:提供了类型特性查询和变换的工具
-
标准库扩展
<utility>
:定义了各种工具,如pair
,swap
<stdexcept>
:定义了标准库中常见的异常类型,如std::logic_error
,std::runtime_error
-
正则表达式
<regex>
:定义了正则表达式的功能
二、基本数据类型
-
整数类型
char
:字符类型,通常占用 1 字节,表示 ASCII 字符short
:短整型,至少占用 2 字节int
:整型,通常占用 4 字节long
:长整型,通常占用 4 或 8 字节,取决于平台long long
:更长的整型,至少占用 8 字节
-
无符号整数类型
unsigned char
:无符号字符类型unsigned short
:无符号短整型unsigned int
:无符号整型unsigned long
:无符号长整型unsigned long long
:无符号更长的整型
-
浮点类型
float
:单精度浮点型,通常占用 4 字节double
:双精度浮点型,通常占用 8 字节long double
:扩展精度浮点型,通常占用 8 字节或更多,取决于平台
-
布尔类型
bool
:布尔类型,表示true
或false
三、派生类型
-
指针类型
type*
:指向type
类型的指针,例如int*
,double*
-
引用类型
type&
:对type
类型的引用,例如int&
,double&
-
数组类型
type[n]
:包含n
个type
类型元素的数组,例如int[10]
-
函数类型
type (parameter_list)
:函数类型,例如int (double, char)
表示一个接受double
和char
参数并返回int
的函数
四、用户定义类型
-
结构体
struct
:自定义的数据结构,可以包含多个数据成员和成员函数
struct MyStruct { int a; float b; };
-
类
class
:类是具有成员变量和成员函数的复杂数据类型,可以实现封装、继承和多态等面向对象的特性
class MyClass { public: int a; void doSomething(); };
-
联合体
union
:联合体允许不同的数据成员共享相同的内存位置
union MyUnion { int i; float f; };
-
枚举
enum
:枚举类型表示一组具名整数常量
enum Color { RED, GREEN, BLUE };
-
类型定义
typedef
和using
:用于创建类型别名
typedef unsigned long ulong; using ulong = unsigned long;
五、空类型
void
void
:表示没有类型,通常用于函数返回值类型或指针类型
void function(); // 返回类型为 void 的函数 void* ptr; // 指向任何类型的指针