头文件 说明 常用函数
#include <iostream>

标准的C++头文件

任何符合标准的C++开发环境都有这个头文件。

当使用<iostream.h>时,相当于在c中调用库函数,使用的是全局命名空间,也就是早期的c++实现;当使用<iostream>的时候,该头文件没有定义全局命名空间,必须使用using namespace std;这样才能正确使用cincout
#include<algorithm>

STL 通用算法

使用该头文件中的函数可以节省很多代码量

非修改性序列操作(12个)
    循环  对序列中的每个元素执行某操作  for_each()
    查找  在序列中找出某个值的第一次出现的位置  find()
             在序列中找出符合某谓词的第一个元素  find_if()
             在序列中找出一子序列的最后一次出现的位置  find_end()
             在序列中找出第一次出现指定值集中之值的位置  find_first_of()
             在序列中找出相邻的一对值  adjacent_find()
    计数  在序列中统计某个值出现的次数  count()
             在序列中统计与某谓词匹配的次数  count_if()
    比较  找出两个序列相异的第一个元素  mismatch()
             两个序列中的对应元素都相同时为真  equal()
    搜索  在序列中找出一子序列的第一次出现的位置  search()
             在序列中找出一值的连续n次出现的位置  search_n()
     
    修改性序列操作(27个)
    复制  从序列的第一个元素起进行复制  copy()
             从序列的最后一个元素起进行复制  copy_backward()
    交换  交换两个元素  swap()
             交换指定范围的元素  swap_ranges()
             交换由迭代器所指的两个元素  iter_swap()
    变换  将某操作应用于指定范围的每个元素  transform()
    替换  用一个给定值替换一些值  replace()
             替换满足谓词的一些元素  replace_if()
             复制序列时用一给定值替换元素  replace_copy()
             复制序列时替换满足谓词的元素  replace_copy_if()
    填充  用一给定值取代所有元素  fill()
             用一给定值取代前n个元素  fill_n()
    生成  用一操作的结果取代所有元素  generate()
             用一操作的结果取代前n个元素  generate_n()
    删除  删除具有给定值的元素  remove()
             删除满足谓词的元素  remove_if()
             复制序列时删除具有给定值的元素  remove_copy()
             复制序列时删除满足谓词的元素  remove_copy_if()
    唯一  删除相邻的重复元素  unique()
             复制序列时删除相邻的重复元素  unique_copy()
    反转  反转元素的次序  reverse()
             复制序列时反转元素的次序  reverse_copy()
    环移  循环移动元素  rotate()
             复制序列时循环移动元素  rotate_copy()
    随机  采用均匀分布来随机移动元素  random_shuffle()
    划分  将满足某谓词的元素都放到前面  partition()
             将满足某谓词的元素都放到前面并维持原顺序  stable_partition()
    
    序列排序及相关操作(27个)
    排序  以很好的平均效率排序  sort()
             排序,并维持相同元素的原有顺序  stable_sort()
             将序列的前一部分排好序  partial_sort()
             复制的同时将序列的前一部分排好序  partial_sort_copy()
    第n个元素  将第n各元素放到它的正确位置  nth_element()
    二分检索  找到大于等于某值的第一次出现  lower_bound()
                     找到大于某值的第一次出现  upper_bound()
                     找到(在不破坏顺序的前提下)可插入给定值的最大范围  equal_range()
                     在有序序列中确定给定元素是否存在  binary_search()
    归并  归并两个有序序列  merge()
             归并两个接续的有序序列  inplace_merge()
             有序结构上的集合操作  一序列为另一序列的子序列时为真  includes()
             构造两个集合的有序并集  set_union()
             构造两个集合的有序交集  set_intersection()
             构造两个集合的有序差集  set_difference()
             构造两个集合的有序对称差集(并-交)  set_symmetric_difference()
    堆操作  向堆中加入元素  push_heap()
                 从堆中弹出元素  pop_heap()
                 从序列构造堆  make_heap()
                 给堆排序  sort_heap()
    最大和最小  两个值中较小的  min()
                         两个值中较大的  max()
                         序列中的最小元素  min_element()
                         序列中的最大元素  max_element()
    词典比较  两个序列按字典序的第一个在前  lexicographical_compare()
    排列生成器  按字典序的下一个排列  next_permutation()
                        按字典序的前一个排列 prev_permutation()
#include <string>  字符串类  

#include <list>  

STL 线性列表容器  
#include <stack>  STL 堆栈容器  
#include <queue>  STL 队列容器  
include<vector>    
include<set> C++里面的模板类 "集合"的头文件set是C++标准库中的一种关联容器。所谓关联容器就是通过键(key)来读取和修改元素。与map关联容器不同,它只是单纯键的集合。 1)set容器的每一个键只能对应一个元素,即不存在键相同的不同元素创建了一个int型的vector容器,存储20个数据,0~9每个数字都出现了两次。用整个vector初始化一个int型set容器,这个set容器却只有10个元素,0~9每个数字只出现一次。证实了set容器的每一个键只能对应一个元素。2)可以使用insert操作向set容器添加元素insert()的参数既可以是一个键,也可以是一对迭代器,它们都可以实现向set容器中添加元素,只不过函数的返回值不同。另外,向set容器中添加元素后,它会自动排序。3)获取元素与map容器不同,set容器不支持下标操作访问元素。使用count()函数可以查询元素是否存在,如果查询的元素存在则返回1,反之则0。使用find()函数,如果查询的元素存在则返回指向该元素的迭代器,反之则返回超出末端迭代器。使用count()和find()函数查询同一元素5,count()函数返回的是该元素在set容器中的数量,find()函数则返回指向该元素的迭代器。需要注意的是,虽然使用find()函数可以返回指向该元素的迭代器,但只能对其做读操作,任何试图修改键值的操作都是非法的。
include<map>    
     
#include <ctime> 把日期和时间转换为字符串 日期和时间函数: 本类别给出时间和日期处理函数
  时间操作函数得到处理器时间 clock
  得到时间差 difftime
  设置时间 mktime
  得到时间 time
  时间转换函数 得到以ASCII码表示的时间 asctime
  得到字符串表示的时间 ctime
  得到指定格式的时间 strftime
#include <cmath>  数学函数  
#include <cstdlib>   定义杂项函数及内存分配函数  
#include <complex>    复数类