C++常用头文件
#include <cstdint>
for C++, or #include <stdint.h>
for C.
#include <climits>
for C++, or #include <limits.h>
for C.
该头文件定义了根据OS和编译器实现的基本整数类型限制的常量。
定义了一些整数类型别名,例如INT_MAX
, INT_MIN
。
#include <unistd.h>
unix类型操作系统api的封装,例如sleep()
函数
#include <iostream>
for C++, #include <iosream.h>
for C
输入/输出流处理的头文件,例如cout
, cin
, endl
。
#include <map>
STL关联容器map,提供一对一(第一个为key,每个key只能在map中出现一次,第二个为value)的数据处理能力。map内部自建一颗红黑树
,所以在map内部所有的数据都是有序
的,且map的查询、插入、删除操作的时间复杂度都是O(logN)
。在使用时,map的key需要定义operator<。
#include <unordered_map>
unordered_map和map类似,都是存储的key-value的值,可以通过key快速索引到value。不同的是unordered_map不会根据key的大小进行排序,存储时是根据key的hash值判断元素是否相同,即unordered_map内部元素是无序
的。unordered_map的key需要定义hash_value函数并且重载operator==。
unordered_map的底层是一个防冗余的哈希表(采用除留余数法)
。哈希表最大的优点,就是把数据的存储和查找消耗的时间大大降低,时间复杂度为O(1)
,而代价仅仅是消耗比较多的内存。
#include <algorithm>