1. #include<iostream>是标准的C++头文件,任何符合标准的C++开发环境都有这个头文件。
当使用<iostream.h>时,相当于在c中调用库函数,使用的是全局命名空间,也就是早期的c++实现;当使用<iostream>的时候,该头文件没有定义全局命名空间,必须使用namespace
std;这样才能正确使用cout。
2.#include
<cstdlib>是C++里面的一个常用函数库, 等价于C中的<stdlib.h>
所包涵的函数:
1函数名称: calloc
函数原型: void * calloc(unsigned n,unsign size);
函数功能: 分配n个数据项的内存连续空间,每个数据项的大小为size
函数返回: 分配内存单元的起始地址,如果不成功,返回0
2函数名称: free
函数原型: void free(void* p);
函数功能: 释放p所指的内存区
函数返回:
参数说明: p-被释放的指针
3函数名称: malloc
函数原型: void * malloc(unsigned size);
函数功能: 分配size字节的存储区
函数返回: 所分配的内存区地址,如果内存不够,返回0
4函数名称: realloc
函数原型: void * realloc(void * p,unsigned size);
函数功能: 将p所指出的已分配内存区的大小改为size,size可以比原来分配的空间大或小
函数返回: 返回指向该内存区的指针.NULL-分配失败
5函数名称: rand
函数原型: int rand(void);
函数功能: 产生0到32767间的随机整数(0到0x7fff之间)
函数返回: 随机整数
6函数名称: abort
函数原型: void abort(void)
函数功能: 异常终止一个进程.
7函数名称: exit
函数原型: void exit(int state)
函数功能: 程序中止执行,返回调用过程
函数返回:
参数说明: state:0-正常中止,非0-非正常中止
8函数名称: getenv
函数原型: char* getenv(const char *name)
函数功能: 返回一个指向环境变量的指针
函数返回: 环境变量的定义
参数说明: name-环境字符串
9函数名称: putenv
函数原型: int putenv(const char *name)
函数功能: 将字符串name增加到DOS环境变量中
函数返回: 0:操作成功,-1:操作失败
参数说明: name-环境字符串
10函数名称: labs
函数原型: long labs(long num)
函数功能: 求长整型参数的绝对值
函数返回: 绝对值
11函数名称: atof
函数原型: double atof(char *str)
函数功能: 将字符串转换成一个双精度数值
函数返回: 转换后的数值
参数说明: str-待转换浮点型数的字符串
12函数名称: atoi
函数原型: int atoi(char *str)
函数功能: 将字符串转换成一个整数值
函数返回: 转换后的数值
参数说明: str-待转换为整型数的字符串
13函数名称: atol
函数原型: long atol(char *str)
函数功能: 将字符串转换成一个长整数
函数返回: 转换后的数值
参数说明: str-待转换为长整型的字符串
14函数名称: ecvt
函数原型: char *ecvt(double value,int ndigit,int *dec,int *sign)
函数功能: 将浮点数转换为字符串
函数返回: 转换后的字符串指针
参数说明: value-待转换底浮点数,ndigit-转换后的字符串长度
15函数名称: fcvt
函数原型: char *fcvt(double value,int ndigit,int *dec,int *sign)
函数功能: 将浮点数变成一个字符串
函数返回: 转换后字符串指针
附:下列东西要用<cstdlib>
字符转换函数:
atof,atoi,atol,strtod,strtol,strtoul
伪随机数函数:
rand,srand
动态分配内存函数:
calloc,free,malloc,realloc
环境函数:
abort,atexit,exit,getenv,system
查找,分类函数:
bsearch,qsort
整数计算函数:
abs,div,labs,ldiv,
多字节文字(中日韩文)函数:
mblen,mbtowc,wctomb
mbstowcs,wcstombs,
宏:
EXIT_FAILURE,
EXIT_SUCCESS,
MB_CUR_MAX,
NULL,RAND_MAX,
类型:
div_t,ldiv_t,size_
3.#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() |
使用该头文件中的函数可以节省很多代码量
4.#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()函数可以返回指向该元素的迭代器,但只能对其做读操作,任何试图修改键值的操作都是非法的。
5.#include
<iterator>是迭代器(Iterator)模式,又叫做游标(Cursor)模式
GOF给出的定义为:提供一种方法访问一个容器(container)对象中各个元素,而又不需暴露该对象的内部细节。
从定义可见,迭代器模式是为容器而生。很明显,对容器对象的访问必然涉及到遍历算法。你可以一股脑的将遍历方法塞到容器对象中去;或者根本不去提供什么遍历算法,让使用容器的人自己去实现去吧。这两种情况好像都能够解决问题。通常与#include
<set>连用
该头文件较为复杂,所以并不想深入了解。。。
6.#include <ctime>的功能是把日期和时间转换为字符串
日期和时间函数: 本类别给出时间和日期处理函数
时间操作函数得到处理器时间 clock
得到时间差 difftime
设置时间 mktime
得到时间 time
时间转换函数 得到以ASCII码表示的时间 asctime
得到字符串表示的时间 ctime
得到指定格式的时间 strftime
7.#include< local.h>
地区化:
本类别的函数用于处理不同国家的语言差异。
地区控制 地区设置 setlocale
数字格式约定查询 国家的货币、日期、时间等的格式转换 localeconv
注:本文主要是供本人编程参考使用,并非权威,文章编辑粗糙简陋,尚显不足。
更多参考请点击C/C++常用头文件汇总
版权声明:本文为博主原创文章,未经博主允许不得转载。