STL库简述

STL库简述STL简述STL库包含六个大类:容器库算法库迭代器库配置器(allocator)适配器(adaptor)仿函数(函数对象)其中后四个类主要为前两个类服务。其中使用频率最高的就是容器库,迭代器库,算法库。容器库为我们提供了存储数据的数据结构,算法库则是我们操作数据结构的算法,迭代器库作为容器库和算法库的黏合剂。容器库容器库整体分为序列型容器,关联型容器,容器适配器。1.序列型容器主要包括list,vector,deque,set。以vector作为学习实例:S

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

STL简述

STL库包含六个大类:

  • 容器库
  • 算法库
  • 迭代器库
  • 配置器(allocator)
  • 适配器(adaptor)
  • 仿函数(函数对象)

其中后四个类主要为前两个类服务。
其中使用频率最高的就是容器库,迭代器库,算法库。容器库为我们提供了存储数据的数据结构,算法库则是我们操作数据结构的算法,迭代器库作为容器库和算法库的黏合剂。


容器库

容器库整体分为 序列型容器 , 关联型容器 , 容器适配器。

1.序列型容器

主要包括 list,vector,deque, array。
以vector作为学习实例:
STL 容器(一) vector

适配器容器 stack,queue,priority_queue 也属于序列型容器,叫它们适配器容器的原因是这些容器的底层是采用vector,deque等现有容器的功能,如stack和queue的底层是采用deque,而priority_queue则是采用vector。
学习实例:
STL 适配器adapter

2.关联型容器

主要包括 map,unordered_map,set,unordered_set 这些key-value存储结构的容器或者以集合形式存在的容器。
学习实例:
STL 容器(二) set,unordered_set
STL 容器(三) map和unordered_map


算法库

算法库整体包括 algorithm库。
algorithm则包括了我们常用的算法;
学习实例:
STL 算法库algorithm


迭代器库

迭代器库整体包括 iterator 库。
迭代器库作为算法库与容器库之间的黏合剂,起到了非常重要的作用。
学习实例:
STL 迭代器(一) 迭代器操作详解
STL 迭代器(二) 迭代器失效情况分析


适配器(adaptor)

适配器分为 容器适配器 和 函数适配器,功能在于将两个不相同的模块结合到一起。
学习实例:
STL 适配器adapter


配置器(allocator)

配置器的功能在于定义类中内存的分配,正常情况下程序员是不会自定义内存的分类的。
学习实例:
STL 配置器allocator 实现vector类


仿函数(函数对象)

实质上也就是将一个类的使用近似看成函数的使用,也就是在类内部使用 operator()
学习实例:
STL 仿函数(一) bind函数回调
STL仿函数(二) bind1st,bind2nd

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/183310.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • android程序员的感悟

    android程序员的感悟来公司上班快3个约了,本人是新手。一个刚刚还没有毕业,参加过培训的android新手。自我感觉学习很一般,很荣幸被现在的公司看中。    我的公司是一个刚刚成立的新公司,我倒是公司公司刚成立差不多就两周。所以我在这个公司现在还算是个老程序员。老板对我还不错。  公司就我一个做android的。android方面都有我自己负责。感谢公司对我的信任,我会加倍认真工作和学习,公司每天9点上班

    2022年6月14日
    106
  • 树莓派4B +远程SSH+远程桌面[通俗易懂]

    树莓派4B +远程SSH+远程桌面[通俗易懂]一、有线SSH连接树莓派我的实验环境是笔记本电脑+树莓派4B具体步骤为:1、电脑连接上无线网络,将电脑网线连接树莓派2、打开如下界面3、双击WLAN——>>点击属性——>>再点击共享选择以太网4、双击以太网——>>点击属性——>>IPV4——>>在选择下面的…

    2022年5月15日
    105
  • 发送邮箱和短信_139邮箱发短信收费吗

    发送邮箱和短信_139邮箱发短信收费吗发送邮箱和短信一、邮箱:(这里用QQ邮箱eg)步骤1、设置QQ邮箱开启并获得(秘钥)ptrylchonikrbcXX(不是真的)步骤2、导入依赖(未用SpringBoot框架)<!–邮件发送–> <dependency> <groupId>javax.mail</groupId> <artifactId>mail</artifactId> <version>1.4.7</

    2022年10月9日
    1
  • websocket 实现长连接原理「建议收藏」

    websocket 实现长连接原理「建议收藏」一、WebSocket是HTML5出的东西(协议),也就是说HTTP协议没有变化,或者说没关系,但HTTP是不支持持久连接的(长连接,循环连接的不算)首先HTTP有1.1和1.0之说,也就是所谓的keep-alive,把多个HTTP请求合并为一个,但是Websocket其实是一个新协议,跟HTTP协议基本没有关系,只是为了兼容现有浏览器的握手规范而已,也就是说它是HTTP协议上的一种补充可以通过这…

    2022年7月11日
    79
  • f1 score java_F1 score「建议收藏」

    f1 score java_F1 score「建议收藏」项目中需要判断用户提交的多选题选项的正确率,比如正确答案应该为a,b,c,而用户选择的是a,d,那么如何判断他的正确率呢,这个场景就需要用到F1score来计算。FromWikipedia,thefreeencyclopediahttp://en.wikipedia.org/wiki/F1_scoreInstatisticalanalysisofBinaryclassi…

    2022年10月15日
    2
  • SQL datetime和smalldatetime区别

    SQL datetime和smalldatetime区别datetime存储大小8个字节,精确到分后的3为小数,日期范围从1753年1月1日到9999年12月31日;而smalldatetime存储大小为4个字节,精确到分,日期范围从1900年1月1日到2079年6月6日。参考http://msdn.microsoft.com/zh-cn/library/ms187819%28v=…

    2022年7月27日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号