C/Cpp常用头文件与库

1: C 头文件

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
  include <assert.h>   //设定插入点
  include <ctype.h>    //字符处理
  include <errno.h>    //定义错误码
  include <float.h>    //浮点数处理
  include <fstream.h>  //文件输入/输出
  include <iomanip.h>  //参数化输入/输出
  include <iostream.h> //数据流输入/输出
  include <limits.h>   //定义各种数据类型最值常量
  include <locale.h>   //定义本地化函数
  include <math.h>     //定义数学函数
  include <stdio.h>    //定义输入/输出函数
  include <stdlib.h>   //定义杂项函数及内存分配函数
  #include <string.h>  //字符串处理
  include <strstrea.h> //基于数组的输入/输出
  include <time.h>     //定义关于时间的函数
  #include <wchar.h>   //宽字符处理及输入/输出
  include <wctype.h>   //宽字符分类//

2:Cpp 头文件

 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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
include <algorithm>  //STL 通用算法
include <bitset>     //STL 位集容器
include <cctype>     //定义错误码
#include <cerrno>    //定义错误码
include <clocale>    //定义本地化函数
include <cmath>      //定义数学函数
include <complex>    //复数类
#include <cstdio>    /定义输入/输出函数
#include <cstdlib>   //定义杂项函数及内存分配函数
include <cstring>    //字符串处理
#include <ctime>     //定义关于时间的函数

include <deque>      //STL 双端队列容器

include <exception>  //异常处理类
include <fstream>    //文件输入/输出

include <functional> //STL 定义运算函数(代替运算符)

include <limits>     //定义各种数据类型最值常量

#include <list>      //STL 线性列表容器
#include <map>       //STL 映射容器
include <iomanip>
#include <ios>       //基本输入/输出支持
#include <iosfwd>    //输入/输出系统使用的前置声明
include <iostream>
include <istream>    //基本输入流
include <ostream>    //基本输出流
include <queue>      //STL 队列容器
include <set>        //STL 集合容器
#include <sstream>   //基于字符串的流
include <stack>      //STL 堆栈容器
include <stdexcept>  //标准异常类
include <streambuf>  //底层输入/输出支持
include <string>     //字符串类
include <utility>    //STL 通用模板类
include <vector>     //STL 动态数组容器
include <cwchar>
include <cwctype>

using namespace std;
///C99 增加
include <complex.h>  //复数处理
include <fenv.h>     //浮点环境
include <inttypes.h> //整数格式转换
include <stdbool.h>  //布尔环境
include <stdint.h>   //整型环境
include <tgmath.h>   //通用类型数学宏

3: STL 标准模板库

  • STL,英文全称 standard template library,中文可译为标准模板库或者泛型库,其包含有大量的模板类和模板函数,是 C++ 提供的一个基础模板的集合,用于完成诸如输入/输出、数学计算等功能;
  • STL 是一些容器、算法和其他一些组件的集合;

3.1 STL 的组成

STL 的组成含义其他
容器一些封装数据结构的模板类,例如 vector 向量容器、list 列表容器等-
算法STL 提供了非常多(大约 100 个)的数据结构算法,它们都被设计成一个个的模板函数,这些算法在 std 命名空间中定义,其中大部分算法都包含在头文件 中,少部分位于头文件 -
迭代器在 C++ STL 中,对容器中数据的读和写,是通过迭代器完成的-
函数对象如果一个类将 () 运算符重载为成员函数,这个类就称为函数对象类,这个类的对象就是函数对象(又称仿函数)-
适配器可以使一个类的接口(模板的参数)适配成用户指定的形式,从而让原本不能在一起工作的两个类工作在一起。值得一提的是,容器、迭代器和函数都有适配器-
内存分配器为容器类模板提供自定义的内存申请和释放功能,由于往往只有高级用户才有改变内存分配策略的需求,因此内存分配器对于一般用户来说,并不常用-

3.2 STL 头文件

  • 按照 C++ 标准库的规定,所有标准头文件都不再有扩展名。以 为例,此为无扩展名的形式,而 <vector.h> 为有扩展名的形式。
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
include <iterator>
include <functional>
include <vector>
include <list>
include <queue>
include <deque>
include <stack>
include <set>
include <map>
include <algorithm>
include <numeric>
include <memory>
include <utility>

4: Cpp 库积累

  • xpack: 实现 C++ 结构体和 JSON/XML/BSON 互转的库
  • cpp-httplib: 一个只有头文件的 HTTP/HTTPS library。
  • wondertrader: 一站式的量化交易框架。这是采用 C++ 开发的一站式量化交易框架,支持量化交易过程中的数据清洗、回测分析、实盘交易、运营调度等环节。可用于多账户交易、极速/高频交易、算法交易等场景。