精华内容
下载资源
问答
  • C++标准库

    千次阅读 2019-06-09 23:19:10
    C++标准库:如string、cstdio(注意,不带.h)是C++标准库提供的。使用时要用using namespace std找开命名空间。 编译器扩展库:这是针对不同的编译器而独有扩展的,例如g++和vc++,它们在这一板块就不同。...

    1.C++编译环境的组成:

    • C语言兼容库:头文件带.h,是C++编译器提供商为推广自己的产品,而提供的C兼容库不是C++标准库提供的),内置的C库
    • C++标准库:如stringcstdio(注意,不带.h)是C++标准库提供的。使用时要用using namespace std找开命名空间。
    • 编译器扩展库:这是针对不同的编译器而独有扩展的,例如g++和vc++,它们在这一板块就不同。
    • C++标准语法模块:C++标准语法的支持。
    • C++扩展语法模块:同样是针对不同的编译器而独有扩展语法。

     

    2.C++标准库:

    (1)C标准函数库

     

    (2)流输入/输出

    <iostream>:支持标准流cin、cout、cerr和clog的输入和输出,还支持多字节字符标准流wcin、wcout、wcerr和wclog。
    <iomanip>:提供操纵程序,允许改变流的状态,从而改变输出的格式。
    <ios>:定义iostream的基类。
    <istream>:为管理输出流缓存区的输入定义模板类。
    <ostream>:为管理输出流缓存区的输出定义模板类。
    <sstream>:支持字符串的流输入输出。
    <fstream>:支持文件的流输入输出。
    <iosfwd>:为输入输出对象提供向前的声明。
    <streambuf>:支持流输入和输出的缓存。
    <cstdio>:为标准流提供C样式的输入和输出。
    <cwchar>:支持多字节字符的C样式输入输出。

     

    (3)数值操作

    <complex>:支持复杂数值的定义和操作。
    <valarray>:支持数值矢量的操作。
    <numeric>:在数值序列上定义一组一般数学操作,例如accumulate和inner_product。
    <cmath>:这是C数学库,其中还附加了重载函数,以支持C++约定。
    <cstdlib>:提供的函数可以提取整数的绝对值,对整数进行取余数操作。

     

    (4)诊断功能

    <stdexcept>:定义标准异常。
    <cassert>:定义断言宏,用于运行时检查。
    <cerrno>:支持C样式的错误信息。

     

    (5)通用工具

     

    (6)国际化

     

    (7)语言支持功能

    <cstddef>:定义宏NULL和offsetof以及其它标准类型size_t和ptrdiff_t。与对应的标准C头文件的区别是,NULL是C++空指针常量的补充定义(C++11中已有关键字nullptr),宏offsetof接受结构或者联合类型参数,只要没有成员指针类型的非静态成员即可。
    <limits>:提供与基本数据类型相关的定义。例如,对于每个数值数据类型,它定义了可以表示出来的最大值和最小值以及二进制数字的位数。
    <climits>:提供与基本整数数据类型相关的C样式定义,C++样式定义在<limits>中。
    <cfloat>:提供与基本浮点型数据类型相关的C样式定义,C++样式定义在<limits>中。
    <cstdlib>:提供支持程序启动和终止的宏和函数,还声明了许多其他杂项函数,例如搜索和排序函数,从字符串转换为数值等函数。<cstdlib>与对应的标准C头文件stdlib.h不同,定义了abort(void)。abort()函数还有额外的功能,它不为静态或自动对象调用析构函数,也不调用传给atexit()函数的函数。它还定义了exit()函数的额外功能,可以释放静态对象,以注册的逆序调用用atexit()注册的函数。清除并关闭所有打开的C流,把控制权返回给主机环境。
    <new>:支持动态内存分配。
    <typeinfo>:支持变量在运行期间的类型标识。
    <exception>:支持异常处理,是处理程序中可能发生的错误的一种方式。
    <cstdarg>:支持接受数量可变的参数的函数。即在调用函数时,可以给函数传送数量不等的数据项。定义了宏va_arg、va_end、va_start以及va_list类型。
    <csetjmp>:为C样式的非本地跳跃提供函数,在C++中不常用。
    <csignal>:为中断处理提供C样式支持。

     

    (8)字符串处理

    <string>:为字符串类型提供支持和定义,包括单字节字符串(由char组成)的string和多字节字符串(由wchar_t组成)。
    <cctype>:单字节字符类别。
    <cwctype>:多字节字符类别。
    <cstring>:为处理非空字节序列和内存块提供函数。不同于对应的标准C库头文件,C样式字符串的一般C库函数被返回值为const和非const的函数对替代。
    <cwchar>:为处理、执行I/O和转换多字节字符序列提供函数,不同于对应的标准C库头文件,几个多字节C样式字符串操作的一般C库函数被返回值为const和非const的函数对替代。
    <cstdlib>:为把单字节字符串转换为数值、在多字节字符和多字节字符串之间转换提供函数。

     

    (9)容器类模板

    <vector>:定义vector序列模板,是一个大小可以重新设置的数组类型,比普通数组更安全、更灵活。
    <list>:定义list序列模板,是一个序列的链表,常常在任意位置插入和删除元素。
    <deque>:定义deque序列模板,支持在开始和结尾的高效插入和删除操作。
    <queue>:为队列(先进先出)数据结构定义序列适配器queue和priority_queue。
    <stack>:为堆栈(后进先出)数据结构定义序列适配器stack。
    <map>:map是一个关联容器类型,允许根据键值是唯一的,且按照升序存储。multimap类似于map,但键不是唯一的。
    <set>:set是一个关联容器类型,用于以升序方式存储唯一值。multiset类似于set,但是值不必是唯一的。
    <bitset>:为固定长度的位序列定义bitset模板,它可以看作固定长度的紧凑型bool数组。
    <array>:(TR1)固定大小数组,支持复制。
    <forward_list>:(c++11)单向列表,支持快速随机访问。
    <unordered_set>:(TR1)无序容器set,其元素随机存放。multiset类似于set,但是值不必是唯一的。
    <unordered_map>:(TR1)无序容器map,其键值随机存放。multimap类似于map,但键不是唯一的。

     

    (10)迭代器

    <iterator>:给迭代器提供定义和支持。

     

    (11)算法

    <algorithm>:提供一组基于算法的函数,包括置换、排序、合并和搜索。
    <cstdlib>:声明C标准库函数bsearch()和qsort(),进行搜索和排序。
    <ciso646>:允许在代码中使用and代替&&。

     

    3.C++ 标准库

    C++ 标准库可以分为两部分

    • 标准函数库 这个库是由通用的、独立的、不属于任何类的函数组成的。函数库继承自 C 语言
    • 面向对象类库 这个库是类及其相关函数的集合。

    C++ 标准库包含了所有的 C 标准库,为了支持类型安全,做了一定的添加和修改。

    标准函数库:

    标准函数库分为以下几类:

    • 输入/输出 I/O
    • 字符串和字符处理
    • 数学
    • 时间、日期和本地化
    • 动态分配
    • 其他
    • 宽字符函数

     

    面向对象类库:

    标准的 C++ 面向对象类库定义了大量支持一些常见操作的类,比如输入/输出 I/O、字符串处理、数值处理。面向对象类库包含以下内容:

    • 标准的 C++ I/O 类
    • String 类
    • 数值类
    • STL 容器类
    • STL 算法
    • STL 函数对象
    • STL 迭代器
    • STL 分配器
    • 本地化库
    • 异常处理类
    • 杂项支持库

     

     

     

     

     

    展开全文
  • C++ 标准库

    2011-08-03 17:04:55
    C++ 标准库包含了三个部分: 1)C 标准库C++ 版本; 2)C++ IO 库; 3)C++ STL  IO 库最常用的 HEADER 是 头文件。 STL 包括了很多 容器类(vector, list, deque, stack...),还有 fun

    C++ 标准库包含了三个部分:

    1)C 标准库的 C++ 版本;

    2)C++ IO 库;

    3)C++ STL 

    IO 库最常用的 HEADER 是 <IOSTREAM> 头文件。


    STL 包括了很多 容器类(vector, list, deque, stack...),还有 functinal, algorithm, iterator 等 。

    C 标准库的 C++ 版本:设原来头文件是 <*.h> 则 C++ 标准头文件是 <c*> 。


    C++ 98 STD 版本的标准库头文件一概没有 .h 后缀,并且把几乎所有内容都加入了 namespace std,需要 unsing 指令才能使用。


         C++标准库中STL是 STL 最初成为标准的时候,标准提交人提交过一个版本。但是,大多数主流的C++编译器都不采用那个版本。

        STL 的不同版本,各有各的好,也各有各的不好。可能主要区别在于,是否支持多线程,list/vector/queue 之类的各种操作的性能问题。其他类在不同 STL 实现中也有细微区别,比如 fstream. 
    基本上,应该采用最新的 STL 实现。比如 STLPort, 或者 Visual C++ 2005 express 中的 STL,都在性能和标准的符合度上,超过了很早出现的 STL 版本。



    STL没有严格的定义。一般来说,STL(标准模版库)是C++标准库中与迭代器一起工作的那一部分。

    展开全文
  • C++标准库chm

    千次下载 热门讨论 2013-08-30 21:00:23
    C++ 标准库 chm版 免费下载,欢迎下载
  • C++标准库基础小知识 首先申明一点,这个系列的笔记是在学习侯捷老前辈的《C++标准库—体系结构与内核分析》课程中的过程中的笔记,记录了课程中的诸多知识点,同时也会加入自己的一些理解,或者将自己理解的知识点...

    C++标准库基础小知识

     

        首先申明一点,这个系列的笔记是在学习侯捷老前辈的《C++标准库——体系结构与内核分析》课程中的过程中的笔记,记录了课程中的诸多知识点,同时也会加入自己的一些理解,或者将自己理解的知识点以自己的语言表达出来。个人非常喜欢以及认同侯捷老前辈的一个观点:胸中自有丘壑。

        C++标准库不再是C语言库那样子由一个个分散函数组成的,C++标准库是由不同的部分相互关联组织成的一个整体,是各个不同的结构组成的一个完整体系。

        学习C++标准库重要的不仅仅是掌握怎么使用它,更应该去了解、分析其内部的机理,才能在使用过程中达到一个全新的层次。

        GP编程(即泛型编程),是一种使用模板(template)为主要工具来编程的模式。GP编程和OOP编程之间存在着很大的区别。

        C++标准库主要是使用GP模式编写的,内部没有过多的面向对象的成分和观念,在早期的实现版本中并没有太多的继承,但随着不断的改进,继承被适当的引入。

        在C++标准库的学习过程中大致的可以划分成这么几个阶段:使用C++标准库、认识C++标准库、良好使用C++标准库、扩充C++标准库。

        C++标准库和C++标准模板库是存在区别的,可以这么说C++标准库中的七成左右是C++标准模板库(STL)。

        C++标准库的部件被封装在命名空间std(standard)中 。例如我们要使用一个容器vector,其实它的全名是std::vector。这是什么意思呢?也就是说如果我们自己写了一个容器也叫vector只要我们把它封到另一个命名空间就可以了,但使用的时候就要明确使用全名了。

        在学习和使用C++标准库的过程中一些网站是非常重要的,因为它本身非常庞大,想要完全的记忆下来并不容易,所以我们需要能够查找其使用规则的地方。这些网站包括:CPlusPlus.com、CppReference.com、gcc.gnu.org。

    展开全文
  • C++ STL标准模板库-优秀的C++标准库

    千人学习 2018-08-23 00:45:49
    STL是Standard Template Library的简称,中文名标准模板,是由Alexander Stepanov、Meng Lee和David R Musser在惠普实验室开发的 ,是一个具有工业强度的,高效的C++,STL早已是ANSI/ISO C++标准中的一部分。...
  • C++标准库学习

    2017-11-26 23:19:53
    C++标准库 标准模板库(STL) 标准库以头文件形式呈现 C++标准库的头文件不带.h; 新式C头文件不带.h,例如#include 旧式C头文件带.h,例如 旧式头文件内的组件不被封装于namespace "std" 重要网页:...

    标准库以头文件形式呈现

    C++标准库的头文件不带.h;

    新式C头文件不带.h,例如#include<cstdio>

    旧式C头文件带.h,例如#include<stdio.h>


    STL六大部件:容器(containers)/分配器(Allocator)/算法(Algorithms)/迭代器(iterators)/适配器(Adapters)/返函式()

    容器 - 结构与分类

    序列式容器:vector/Deque/List/Forward-List等

    vector :可变大小数组,支持快速随机访问,一般在其尾部插入元素,用push_back;

    deque:双端队列,支持快速随机访问,在首尾都可以插入元素;

    list:双向链表,只支持双向顺序访问,在任何位置插入/删除元素都很快;

    forward_list:单向链表,只支持单向顺序访问。在链表的任何位置插入或者删除元素都很快;

    array:固定大小数组,支持快速随机访问,不能添加/删除元素;


    序列式容器

     vector 的size和capabilitiy:vector的size指的是它实际存放的元素个数,vector的capability指的是适配器为它分配的内存大小;

    如果标准库容器有一个sort,某些容器本身也有sort,一般是容器自身拥有的sort比较快

    deque:每次扩充一个buffer,实际上它不是连续内存,实际上如果++这动作,已经使得迭代器到了容器的末端,deque有一个map,map指向每个buffer的首地址,每次当内存不足,deque就会申请一个buffer。

    stack:没有iterator


    关联容器

    关联容器有8种,分别是set/multiset/map/multimap(按关键字有序保存元素)和nordered_set/norder_multiset/norder_map/norder_multimap(无序集合),其中map是关联数组,保存关键字-值,它们是一一对应的关系;set则是关键字的集合,它只保存关键字;这两个容器中的关键字都是唯一的;multiset和multimap中可以有多个相同的关键字;

    值得注意的是关联容器map/multimap中的元素是pair对象;


    不定序容器:哈希树(最好的做法:separate chaining)

    学习重要网页:www.cplusplus.com

    CppReference.com

    gcc.gnu.org































    展开全文
  • C++ Standard Library - C++ 标准库 In the C++ programming language, the C++ Standard Library is a collection of classes and functions, which are written in the core language and part of the C++ ISO ...
  • C++标准库和C++标准模版库

    千次阅读 2011-03-27 18:18:00
     C++标准库很大,在现在的情况下,C++标准库确实越来越好,因为大的库会包含大量的功能.标准库中的功能越多,开发自己的应用程序时能借助的功能就越多,C++库并非提供一切(很明显的是没有提供开发和图形用户接口的...
  • C++标准库和标准模板库

    万次阅读 多人点赞 2012-05-10 08:54:10
    C++标准库的内容总共在50个标准头文件中定义。在C++开发中,要尽可能地利用标准库完成。这样做的直接好处包括:(1)成本:已经作为标准提供,何苦再花费时间、人力重新开发呢;(2)质量:标准库的都是经过严格测试...
  • C++ 标准库类型 set

    2018-09-07 16:37:46
    C++ 标准库类型 set
  • C/C++标准库源代码

    千次下载 热门讨论 2015-08-16 10:10:31
    C/C++标准库源代码,从Microsoft Visual Studio 10.0即Visual Studio 2010中提取出来的,希望对大家的学习和工作有所帮助。
  • C++ 标准库头文件

    2018-07-01 19:54:19
    C++ 标准库的接口由下列头文件的汇集定义。 概念库 &lt;concepts&gt; (C++20 起) 基础库概念 工具库 &lt;cstdlib&gt; 通用工具:程序控制、动态内存分配、随机数、...
  • C++标准库头文件介绍

    千次阅读 2016-09-26 16:17:11
    C++标准库的所有头文件都没有扩展名。C++标准库的内容总共在50个标准头文件中定义,其中18个提供了C库的功能。 形式的标准头文件【 例外】其内容与ISO标准C包含的name.h头文件相同,但容纳了C++扩展的功能。在 形式...
  • C++标准库和模板库

    千次阅读 2017-01-12 17:15:41
    C++标准库的内容总共在50个标准头文件中定义。 在C++开发中,要尽可能地利用标准库完成。 这样做的直接好处包括: (1)成本:已经作为标准提供,何苦再花费时间、人力重新开发呢; (2)质量:标准库的都是经过严格...
  • C++标准库概述

    千次阅读 2014-12-16 15:04:06
    一、C++标准库的主要组件:1、标准C库2、I/O流技术(对标准输入输出设备称为标准I/O,对在外磁盘上文件的输入输出称为文件I/O,对内存中指定的字符串存储空间的输入输出称为串I/O)3、string类模版4、容器(vector、...
  • C++ 标准库C++ Standary Library)

    千次阅读 2018-06-07 17:28:00
    可能有很多像我一样的同学,用C++...今天就来介绍介绍c++标准库原文地址 点击打开链接C++ 标准库以若干头文件的方式提供。下面简单介绍一个各头文件的内容。第一部分 容器 Containers&lt;array&gt;C++...
  • C++标准库简介

    2012-04-26 17:04:27
    C++标准库简介 C++标准库的所有头文件都没有扩展名。C++标准库的内容总共在50个标准头文件中定义,其中18个提供了C库的功能。 形式的标准头文件【 例外】其内容与ISO标准C包含的name.h头文件相同,但容纳了C++扩展...
  • C++标准库分类

    千次阅读 2012-02-02 23:47:42
    C++标准库的所有头文件都没有扩展名。C++标准库的内容总共在50个标准头文件中定义,其中18个提供了C库的功能。形式的标准头文件【 例外】其内容与ISO标准C包含的name.h头文件相同,但容纳了C++扩展的功能。在 形式...
  • C++STL开发温习与总结(五):5.C++标准库简介  C++标准库很强大,在现在的情况下,C++标准库确实越大越好,因为大的库会包含大量的功能。
  • C++标准库的所有头文件

    千次阅读 2017-09-08 11:24:34
    C++标准库的所有头文件都没有扩展名。C++标准库的内容总共在50个标准头文件中定义,其中18个提供了C库的功能。 形式的标准头文件【 例外】其内容与ISO标准C包含的name.h头文件相同,但容纳了C++扩展的功能。在 形式...
  • C++著名类库和C++标准库介绍

    千次阅读 2014-01-08 22:07:43
    C++著名类库和C++标准库介绍
  • 在这之前,我写的C++程序不能叫做标准的C++...今天我们来学习C++标准库。 首先看一下例子:操作符 看一个程序: #include const char endl = '\n'; class Console { public: Console&amp; operator int i) {

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 35,195
精华内容 14,078
关键字:

c++标准库

c++ 订阅