
C++(标准库)
文章平均质量分 96
此专栏包含了C++标准库的内容,不保证包含标准库的所有内容。以C++11标准来进行编写。最后感谢Nicolai M.Josuttis作者的《C++标准库》一书提供的内容
董哥的黑板报
90后程序员!
展开
-
C++(标准库):01---C++标准的历史
一、C++标准的历史C++标准初始于1989年,由国际标准化组织(ISO)推动。ISO其实是一个大群国家标准组织,成员机构包括美国的ANSI 下面是C++标准的发展历程: ①C++98:于1998年批准,是第一份C++标准规则 官方名称是Inforamtion Trchnology-Programming Languages-C++,文档编号ISO/IEC 14882:1998 ...原创 2020-03-18 15:21:25 · 1467 阅读 · 0 评论 -
C++(标准库):02---pair容器
一、pair历史概述C++标准库的第1版(C++98),提供了一个简单的class,用来处理类型不同的两个(一对)值,这个就是pair。到了C++11,pair被重新定义,有了很大扩展 pair与tuple: tuple在TR1被引入,它是对pair的扩展 tuple在后面详细概述,见文章:https://blog.youkuaiyun.com/qq_41453285/article/detail...原创 2020-04-10 12:57:54 · 1465 阅读 · 0 评论 -
C++(标准库):03---tuple容器
一、tuple的历史概述Tuple是TR1引入的东西,它扩展了pair的概念,拥有任意数量的元素。在C++11标准之前,tuple最多带有10个类型不同的元素 C++11,tuple被重新定义,采用variadic template概念,被设计为可用于任意大小的异质集合二、tuple概述tuple与pair类似,也是一个模板。pair接受两个成员,tuple接受任意数目的成员 当我们...原创 2020-04-10 16:16:02 · 1020 阅读 · 0 评论 -
C++(标准库):04---智能指针之shared_ptr
一、shared_ptr类头文件:#include<memory> 智能指针,是一个模板。创建智能指针时,必须提供指针所指的类型 如果当做提条件判断,则是检测其是否为空shared_ptr<string> p1; //指向stringshared_ptr<list<int>> p2;//指向int的listif(p1 &...原创 2020-04-10 17:32:50 · 1544 阅读 · 0 评论 -
C++(标准库):05---智能指针之weak_ptr
一、概念weak_ptr是一种不控制所指向对象生存期的智能指针,它指向一个shared_ptr管理的对象 拥有“弱”共享的特点最重要的特点一个对象被多个shared_ptr类所指向时,就会拥有多个引用计数 但是当weak_ptr指向一个shared_ptr类所指向的对象时,该对象的引用计数不会增加 因此,当最后一个对象的最后一个shared_ptr类被释放时,该对象会被释放。即使...原创 2020-04-10 17:36:57 · 551 阅读 · 0 评论 -
C++(标准库):06---智能指针之unique_ptr
一、unique_ptr类头文件:#include<memory> 智能指针,是一个模板。创建智能指针时,必须提供指针所指的类型与shared_ptr的不同之处:shared_ptr所指向的对象可以有多个其他shared_ptr智能指针 而unique_ptr所指向的对象只能有一个unique_ptr指针,也就是自己。当unique_ptr被销毁时,它所指向的对象也被销...原创 2020-04-10 17:38:28 · 1090 阅读 · 0 评论 -
C++(标准库):07---数值的极值(numeric_limits类)
一、数值的极值概述数值类型有着与平台相依的极值 C++标准规定了各种类型必须保证的最小精度。这些最小值如下图所示:二、numeric_limits传统C语言使用预处理器常量来决定数值的极值,其中整数常量定义于<climits>或<limits.h>中,浮点常量定义于<cfloat>或<float.h>中 C++标准库定义一个temp...原创 2020-04-10 21:07:03 · 1255 阅读 · 1 评论 -
C++(标准库):08---Type Trait和Type Utility(type_traits库)
一、前言C++标准库几乎每样东西都以template为根基。为了更多地支持template编程,彼岸准哭提供了template通用工具,协助应用程序开发人员和程序库作者 Type Trait,由TR1引入,在C++11中被大幅度扩展,定义出因type而异的行为。它们可被用来针对type优化代码,以便提供特别能力 其他工具如reference和function wrapper,也为编程带来若...原创 2020-04-11 16:30:36 · 2821 阅读 · 4 评论 -
C++(标准库):09---分数运算(ratio库)
一、ratio概述待续原创 2020-04-12 09:35:22 · 1237 阅读 · 0 评论 -
C++(标准库):10---Clock和Timer(chrono库)
待续原创 2020-04-12 09:53:30 · 3933 阅读 · 0 评论 -
C++(标准库):11---头文件<cstddef>、<cstdlib>、<cstring>
头文件<stddef>、<cstdlib>、<cstring>与其C对应版本兼容,在C++程序中经常用到。它们是C头文件<stddef.h>、<stdlib.h>、<string.h>的较新版本,定义了一些常用的常量、宏、类型和函数一、<cstddef>NULL与nullptr在C++11之前,NU...原创 2020-04-12 09:53:48 · 3603 阅读 · 0 评论 -
C++(标准库):12---STL容器总体概述
一、容器概述容器用来管理一大群元素。为了适应不同需要,STL提供了不同的容器,如下图所示二、容器的分类总的来说,容器可以分为三大类: ①序列式容器(Sequence container):这是一种有序(ordered)集合,其内每个元素均有确凿的位置——取决于插入时机和位置,与元素值无关。STL提供了5个定义好的序列式容器: array、vector、deque、list、...原创 2020-04-13 10:16:53 · 1622 阅读 · 0 评论 -
C++(标准库):13---STL容器之(序列式容器array)
一、序列式容器概述关于STL容器的总体介绍,可以参阅:https://blog.youkuaiyun.com/qq_41453285/article/details/105482769 STL内部预先定义好的序列式容器有: array:在固定大小的array内管理元素 基础语法参阅:https://blog.youkuaiyun.com/qq_41453285/article/details/10548310...原创 2020-04-13 10:32:50 · 1124 阅读 · 0 评论 -
C++(标准库):14---STL容器之(序列式容器vector)
待续原创 2020-04-13 10:34:57 · 952 阅读 · 0 评论 -
C++(标准库):15---STL容器之(序列式容器deque)
待续原创 2020-04-13 10:36:58 · 711 阅读 · 0 评论 -
C++(标准库):16---STL容器之(序列式容器list)
待续原创 2020-04-13 10:38:48 · 1414 阅读 · 0 评论 -
C++(标准库):17---STL容器之(序列式容器forward_list)
待续原创 2020-04-13 10:40:32 · 741 阅读 · 0 评论 -
C++(标准库):18---STL容器之(关联式容器set、multiset)
待续原创 2020-04-13 10:50:07 · 800 阅读 · 0 评论 -
C++(标准库):19---STL容器之(关联式容器map、multimap)
待续原创 2020-04-13 10:52:43 · 740 阅读 · 0 评论 -
C++(标准库):20---STL容器之(无序容器unordered_set、unordered_multiset、unordered_map、unordered_multimap)
待续原创 2020-04-13 10:54:40 · 3740 阅读 · 3 评论 -
C++(标准库):21---STL容器之(容器适配器之stack)
一、容器适配器概述 什么是适配器(container adapter): 一个适配器是一种机制,能使某种事物的行为看起来像另外一种事物一样 容器、迭代器、函数都有适配器(本文主题是容器的适配器) 容器适配器就是通过上面这些容器底层实现,使上面那些容器能拥有一些行为和特点 标准库提供的容器适配器有: stack:栈。具有先进后出的特点。 基础语法参阅:https://bl...原创 2020-04-13 11:12:52 · 776 阅读 · 0 评论 -
C++(标准库):22---STL容器之(容器适配器之queue)
一、容器适配器概述 什么是适配器(container adapter): 一个适配器是一种机制,能使某种事物的行为看起来像另外一种事物一样 容器、迭代器、函数都有适配器(本文主题是容器的适配器) 容器适配器就是通过上面这些容器底层实现,使上面那些容器能拥有一些行为和特点 标准库提供的容器适配器有: stack:栈。具有先进后出的特点。 基础语法参阅:https://bl...原创 2020-04-13 11:14:13 · 582 阅读 · 0 评论 -
C++(标准库):23---STL容器之(容器适配器之priority_queue)
一、容器适配器概述 什么是适配器(container adapter): 一个适配器是一种机制,能使某种事物的行为看起来像另外一种事物一样 容器、迭代器、函数都有适配器(本文主题是容器的适配器) 容器适配器就是通过上面这些容器底层实现,使上面那些容器能拥有一些行为和特点 标准库提供的容器适配器有: stack:栈。具有先进后出的特点。 基础语法参阅:https://bl...原创 2020-04-13 11:15:26 · 572 阅读 · 0 评论 -
C++(标准库):24---STL容器之(特殊容器bitset)
一、bitset概述标准库定义了bitset类,使得位运算使用更为容易,并且能够处理超过最长整型类型大小的位集合 bitset定义在头文件bitset中二、定义和初始化bitset上图给出了bitset的构造方法 低位与高位: 二进制集合的起始位置(索引为0)称为低位,往后的称为高位 注意,bitset的索引0从最右侧开始 bitset是一个类模板,类似于array类...原创 2020-04-13 11:20:30 · 747 阅读 · 0 评论 -
C++(标准库):25---STL容器之(实现容器reference语义)
一、C++标准库提供的是value语义通常,所有容器都会建立元素拷贝,返回的也是元素的拷贝 STL只支持value语义,不支持reference语义。优缺点如下: 优点: 复制元素很简单 使用reference时容易出错,你必须确保reference所指对象仍然健在,并需要小心队服偶尔出现的环式指向状态 缺点: 复制元素可能会导致不良的效率,有时甚至无法复制 ...原创 2020-04-13 12:34:09 · 976 阅读 · 1 评论 -
C++(标准库):26---STL迭代器之(迭代器的5大种类(输出迭代器、输入迭代器、向前迭代器、双向迭代器、随机访问迭代器))
一、迭代器的头文件所有的容器都定义有自己的iterator类型,因此如果单单使用容器,只需要包含对应容器的头文件即可 不过有些特殊的iterator,被定义在头文件<iterator>中二、迭代器介绍类似于容器,迭代器也定义了一组公共操作: 一些操作所有迭代器都支持 另外一些只有特定类型的迭代器才支持 例如,ostream_iterator只支持递增、解引用、赋...原创 2020-04-13 12:43:19 · 1807 阅读 · 0 评论 -
C++(标准库):27---STL迭代器之(迭代器相关辅助函数(advance()、next()、prev()、distance()、iter_swap()))
待续原创 2020-04-13 12:44:34 · 574 阅读 · 0 评论 -
C++(标准库):28---STL迭代器之(迭代器适配器(插入迭代器、流迭代器、反向迭代器、移动迭代器))
除了每个容器有自己的迭代器之外,标准库在头文件iterator中还定义了额外几种迭代器 这些迭代器包括: 插入迭代器(insert iterator):这些迭代器被绑定到一个容器上,可用来向容器插入元素 流迭代器(stream iterator):这些迭代器被绑定到输入或输出流上,可用来遍历所有关联的IO流 反向迭代器(reverse iterator):这些迭代器向后而不是向...原创 2020-04-13 12:47:13 · 553 阅读 · 0 评论 -
C++(标准库):29---STL迭代器之(迭代器的trait特性)
待续原创 2020-04-13 12:48:46 · 484 阅读 · 0 评论 -
C++(标准库):30---STL迭代器之(用户自定义迭代器)
待续原创 2020-04-13 12:49:20 · 470 阅读 · 0 评论 -
C++(标准库):31---STL函数对象之(函数对象的概念及使用)
待续原创 2020-04-13 12:52:54 · 1220 阅读 · 1 评论 -
C++(标准库):32---STL函数对象之(预定义的函数对象、函数适配器)
待续原创 2020-04-13 12:54:30 · 1244 阅读 · 1 评论 -
C++(标准库):33---Lambda表达式
待续原创 2020-04-13 12:55:09 · 2370 阅读 · 0 评论 -
C++(标准库)34---STL算法之(算法总体概述)
一、算法的头文件如果想要使用C++标准库的算法,必须包含以下头文件: 此头文件还包含了若干辅助函数:min()、max()、minmax()、iter_swap() #include <algorithm>如果STL算法用于数值运算,还需要包含下面的头文件:#include <numeric>二、算法的特殊命名后缀STL设计者为算法命名时,引入...原创 2020-04-13 13:12:58 · 866 阅读 · 0 评论 -
C++(标准库):35---STL算法之(for_each()算法)
待续原创 2020-04-13 13:14:04 · 1888 阅读 · 1 评论 -
C++(标准库):36---STL算法之(非更易型算法)
原创 2020-04-13 13:15:37 · 501 阅读 · 0 评论 -
C++(标准库):37---STL算法之(更易型算法)
原创 2020-04-13 13:15:41 · 511 阅读 · 0 评论 -
C++(标准库):38---STL算法之(移除型算法)
原创 2020-04-13 13:15:45 · 540 阅读 · 0 评论 -
C++(标准库):39---STL算法之(变序型算法)
原创 2020-04-13 13:16:21 · 563 阅读 · 0 评论 -
C++(标准库):40---STL算法之(排序算法)
原创 2020-04-13 13:17:57 · 593 阅读 · 0 评论