收藏
0有用+1
0

标准函数

具有常用功能的函数
标准函数,是具有常用功能的函数。在程序设计中,常将一些常用的功能模块编写成的函数放在函数库中供公共选用,一般称为标准函数。程序是由若干个程序模块组成的,高级语言中有子程序这个概念,子程序的功能由函数来实现的。C++标准函数库为C++程序员们提供了一个可扩展的基础性框架。我们从中可以获得极大的便利,同时也可以通过继承现有类,自己编制符合接口规范的容器、算法、迭代子等方式对之进行扩展。
中文名
标准函数
外文名
Standard function
基础性框架
C++标准函数库
分    类
函数
实    质
具有常用功能的函数
研究领域
程序设计
定    义
具有常用功能的函数

C标准函数库

播报
编辑
基本保持了与原有C语言程序库的良好兼容,尽管有些微变化。在C++标准库中存在两套C的函数库,一套是带有.h扩展名的(比如<stdio.h>),而另一套则没有(比如<cstdio>)。实际上它们没有太大的不同。

分类

播报
编辑

语言支持

属于language support部分,包含了一些标准类型的定义以及其他特性的定义,这些内容,被用于标准库的其他地方或是具体的应用程序中。

诊断

属于diagnostics部分,提供了用于程序诊断和报错的功能,包含了异常处理(exception handling),断言(assertions),错误代码(error number codes)三种方式。

通用工具

属于general utilities部分,这部分内容为C++标准库的其他部分提供支持,当然你也可以在自己的程序中调用相应功能。比如:动态内存管理工具,日期/时间处理工具。记住,这里的内容也已经被泛化了(即采用了模板机制)。

字符串

属于string部分,用来代表和处理文本。它提供了足够丰富的功能。事实上,文本是一个string对象,它可以被看作是一个字符序列,字符类型可能是char,或者wchar_t等等。string可以被转换成char*类型,这样便可以和以前所写的C/C++代码和平共处了。因为那时候除了char*,没有别的。

国际化

属于internationalization部分,作为OOP特性之一的封装机制在这里扮演着消除文化和地域差异的角色,采用locale和facet可以为程序提供众多国际化支持,包括对各种字符集的支持,日期和时间的表示,数值和货币的处理等等。毕竟,在中国和在美国,人们表示日期的习惯是不同的。

容器

属于containers部分,STL的一个重要组成部分,涵盖了许多数据结构,比如前面曾经提到的链表,还有:vector(类似于大小可动态增加的数组)、queue(队列)、stack(堆栈)……。string也可以看作是一个容器,适用于容器的方法同样也适用于string。你可以轻松的完成数据结构课程的家庭作业了。

算法

属于algorithms部分,STL的一个重要组成部分,包含了大约70个通用算法,用于操控各种容器,同时也可以操控内建数组。比如:find用于在容器中查找等于某个特定值的元素,for_each用于将某个函数应用到容器中的各个元素上,sort用于对容器中的元素排序。所有这些操作都是在保证执行效率的前提下进行的,所以,如果在你使用了这些算法之后程序变得效率底下,首先一定不要怀疑这些算法本身,仔细检查一下程序的其他地方。

迭代器

属于iterators部分,STL的一个重要组成部分,如果没有迭代器的撮合,容器和算法便无法结合的如此完美。事实上,每个容器都有自己的迭代器,只有容器自己才知道如何访问自己的元素。它有点像指针,算法通过迭代器来定位和操控容器中的元素。

数值

属于numerics部分,包含了一些数学运算功能,提供了复数运算的支持。

输入输出

属于input/output部分,就是经过模板化了的原有标准库中的iostream部分,它提供了对C++程序输入输出的基本支持。在功能上保持了与原有iostream的兼容,并且增加了异常处理的机制,并支持国际化internationalization。
总体上,在C++标准函数库中,STL主要包含了容器、算法、迭代器。string也可以算做是STL的一部分。
这里总结了标准输入输出函数的申明和用法:
文件操作标准I/O库函数:fopen、fread、fwrite、fclose、fflush、fseek、fgetc、getc、getchar、fputc、putc、putchar、fgets、gets、printf、fprintf、sprintf、scanf、fscanf、sscanf、fgetops、fsetops、ftell、rewind、freopen、setvbuf、remove、fileno、fdopen
目录操作标准I/O库函数:opendir、readdir、telldir、seekdir、closedir [1]