STL教程:C++ STL快速入门(非常详细)_stl教程:c++ stl快速入门(非常详细) (biancheng.net)-程序员宅基地

技术标签: c++  

网址  http://c.biancheng.net/stl/

 

STL 是“Standard Template Library”的缩写,中文译为“标准模板库”。STL 是 C++ 标准库的一部分,不用单独安装。

C++ 对模板(Template)支持得很好,STL 就是借助模板把常用的数据结构及其算法都实现了一遍,并且做到了数据结构和算法的分离。例如,vector 的底层为顺序表(数组),list 的底层为双向链表,deque 的底层为循环队列,set 的底层为红黑树,hash_set 的底层为哈希表。

这套 C++ STL 入门教程非常详细,旨在让您快速学会标准模板库的使用。读者需要具备 C++ 基础,并了解C++模板的用法。

第1章 STL基础

1. C++ STL是什么,有什么用?

2. C++ STL的发展历程是怎样的?

3. C++ STL版本有哪些?

4. 熟练使用STL标准库是每个C++程序员的必备技能!

5. 泛型是什么,C++泛型编程又是什么?

6. C++ STL基本组成(6大组件+13个头文件)

7. 如何衡量一个算法的执行效率?

8. GNU开源精神及其发展历程

第2章 STL序列式容器

1. C++ STL容器是什么?

2. 迭代器是什么,C++ STL迭代器(iterator)用法详解

3. C++序列式容器(STL序列式容器)是什么

4. C++ array(STL array)容器用法详解

5. C++ STL array随机访问迭代器(精讲版)

6. C++ STL array容器访问元素的几种方式

7. C++ array容器:普通数组的“升级版”

8. C++ STL vector容器详解

9. C++ STL vector容器迭代器用法详解

10. C++ STL vector容器访问元素的几种方式

11. C++ vector容量(capacity)和大小(size)的区别

12. 深度剖析C++ vector容器的底层实现机制

13. C++ STL vector添加元素(push_back()和emplace_back())详解

14. C++ STL vector插入元素(insert()和emplace())详解

15. C++ STL vector删除元素的几种方式(超级详细)

16. 如何避免vector容器进行不必要的扩容?

17. vector swap()成员方法还可以这样用!

18. 切忌,vector<bool>不是存储bool类型元素的vector容器!

19. C++ STL deque容器(详解版)

20. C++ STL deque容器迭代器用法详解

21. 深度剖析deque容器底层实现原理

22. C++ STL deque容器访问元素(4种方法)

23. C++ STL deque容器添加和删除元素方法完全攻略

24. C++ list(STL list)容器完全攻略(超级详细)

25. C++ STL list迭代器及用法(详解版)

26. C++ list容器底层存储结构(详解版)

27. C++ list(STL list)访问元素的几种方法

28. C++ STL list添加(插入)元素方法详解

29. empty()和size()都可以判断容器是否为空,谁更好?

30. C++ STL list删除元素详解

31. C++ STL forward_list容器完全攻略

第3章 STL关联式容器

1. C++ STL关联式容器是什么?

2. C++ STL pair用法详解

3. C++ STL map容器详解

4. C++ STL map容器迭代器用法详解

5. C++ STL map获取键对应值的几种方法(超详细)

6. C++ STL map insert()插入数据的4种方式

7. C++ map容器operator[]和insert()效率对比(深度剖析)

8. C++ STL map emplace()和emplace_hint()方法详解

9. C++ map容器3种插入键值对的方法,谁的效率更高?

10. C++ STL multimap容器用法完全攻略(超详细)

11. C++ STL set容器完全攻略(超级详细)

12. C++ STL set容器迭代器用法详解

13. C++ STL set insert()方法详解

14. C++ STL set emplace()和emplace_hint()方法详解

15. C++ STL set删除数据:erase()和clear()方法

16. C++ STL multiset容器详解

17. 如何自定义C++ STL关联式容器的排序规则?

18. 如何修改关联式容器中键值对的键?

第4章 STL无序关联式容器

1. C++ STL无序容器(哈希容器)是什么?

2. C++ STL unordered_map容器用法详解

3. 深度剖析C++无序容器的底层实现机制

4. C++ unordered_map迭代器的用法

5. C++ STL unordered_map获取元素的4种方法(超级详细)

6. C++ unordered_map insert()用法精讲

7. C++ unordered_map emplace()和emplace_hint()方法

8. C++ STL unordered_map删除元素:erase()和clear()

9. C++ STL unordered_multimap容器精讲

10. C++ STL unordered_set容器完全攻略

11. C++ STL unordered_multiset容器详解

12. 如何自定义C++ STL无序容器的哈希函数和比较规则?(超级详细)

13. C++ STL容器这么多,怎样选出最适合的?

第5章 STL容器适配器

1. 什么是适配器,C++ STL容器适配器详解

2. C++ stack(STL stack)容器适配器用法详解

3. stack容器适配器实现计算器(含实现代码)

4. C++ STL queue容器适配器详解

5. C++ queue容器适配器模拟超市结账环节

6. C++ STL priority_queue容器适配器详解

7. priority_queue容器适配器实现自定义排序

8. 深度剖析priority_queue容器的底层实现

第6章 STL迭代器适配器

1. C++ STL迭代器适配器是什么?

2. C++ STL 反向迭代器适配器(reverse_iterator)详解

3. C++ STL插入迭代器适配器(insert_iterator)

4. C++ STL流迭代器(istream_iterator和ostream_iterator)

5. C++ STL流缓冲区迭代器(streambuf_iterator)

6. C++ STL move_iterator移动迭代器用法详解

7. C++ STL advance()函数用法详解

8. C++ STL distance()函数用法详解(一看就懂)

9. 如何将const_iterator转换为iterator类型迭代器?

10. C++ STL begin()和end()函数用法

11. C++ STL prev()和next()函数用法详解

第7章 C++常用算法

1. C++ sort()排序函数用法详解

2. C++ stable_sort()用法详解

3. C++ partial_sort()函数详解

4. C++ nth_element()用法详解

5. C++ is_sorted()函数完全攻略

6. C++ STL标准库这么多排序函数,该如何选择?

7. 自定义STL算法规则,应优先使用函数对象!

8. C++ merge()和inplace_merge()函数用法(详解版)

9. C++ find()函数用法详解(超级详细)

10. 能用STL算法,绝不自己实现!

11. STL算法和容器中的成员方法同名时,该如何选择?

12. C++ find_if()和find_if_not()函数用法详解

13. C++ find_end()函数详解

14. C++ find_first_of()函数完全攻略

15. C++ adjacent_find()函数用法详解

16. C++ search()函数用法完全攻略

17. C++ search_n()函数用法(超级详细)

18. C++ partition()和stable_partition()函数详解

19. C++ partition_copy()函数详解

20. C++ partition_point()函数(详解版)

21. C++ lower_bound()函数用法详解

22. C++ upper_bound()函数(精讲版)

23. C++ equel_range()函数详解

24. C++ binary_search()函数详解

25. C++(STL) all_of、any_of及none_of算法详解

26. C++ equal(STL equal)比较算法详解

27. C++ mismatch(STL mismatch)算法详解

28. C++(STL) lexicographical_compare字符串排序算法详解

29. C++ next_permutation(STL next_permutation)算法详解

30. C++ prev_permutation(STL prev_permutation)算法详解

31. C++ is_permutation(STL is_permutation)算法详解

32. C++ copy_n(STL copy_n)算法详解

33. C++ copy_if(STL copy_if)算法详解

34. C++ copy_backward(STL copy_backward)算法详解

35. C++ reverse_copy(STL reverse_copy)算法详解

36. C++ unique(STL unique)算法详解

37. C++ rotate(STL rotate)算法详解

38. C++ rotate_copy(STL rotate_copy)算法详解

39. C++ move(STL move)函数使用详解

40. C++ swap_ranges(STL swap_ranges)函数使用详解

41. C++ remove、remove_copy、remove_if和remove_copy_if函数使用详解

42. C++ fill和fill_n函数用法详解

43. C++(STL)generate和generate_n函数用法详解

44. C++ transform(STL transform)函数用法详解

45. C++ replace,replace_if和replace_copy函数用法详解

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/digitalkee/article/details/107073097

智能推荐

使用JDBC连接数据库出现 The server time zone value ‘�й���׼ʱ��‘ is unrecognized or represents more than one解决方案_jdbc.properties timezone-程序员宅基地

文章浏览阅读553次。在 jdbc.properties 文件中的 url 后面加上 ?serverTimezone=UTC加入之前的jdbc.properties文件:user=rootpassword=12345678url=jdbc:mysql://localhost:3306/testdriverClass=com.mysql.cj.jdbc.Driver加入之后:user=rootpassword=12345678url=jdbc:mysql://localhost:3306/test?serv_jdbc.properties timezone

计算机图形学孔令德基础知识,计算机图形学基础教程孔令德答案-程序员宅基地

文章浏览阅读1.4k次。计算机图形学基础教程孔令德答案【篇一:大学计算机图形学课程设】息科学与工程学院课程设计任务书题目:小组成员:巴春华、焦国栋成员学号:专业班级:计算机科学与技术、2009级本2班课程:计算机图形学指导教师:燕孝飞职称:讲师完成时间: 2011年12 月----2011年 12 月枣庄学院信息科学与工程学院制2011年12 月20日课程设计任务书及成绩评定12【篇二:计算机动画】第一篇《计算机图形学》..._计算机图形学基础教程 孔令德 答案

python xlwings追加数据_大数据分析Python库xlwings提升Excel工作效率教程-程序员宅基地

文章浏览阅读1k次。原标题:大数据分析Python库xlwings提升Excel工作效率教程Excel在当今的企业中非常非常普遍。在AAA教育,我们通常建议出于很多原因使用代码,并且我们的许多数据科学课程旨在教授数据分析和数据科学的有效编码。但是,无论您偏爱使用大数据分析Python的程度如何,最终,有时都需要使用Excel来展示您的发现或共享数据。但这并不意味着仍然无法享受大数据分析Python的某些效率!实际上,..._xlwings通过索引添加数据

java8u211_jre864位u211-程序员宅基地

文章浏览阅读911次。iefans为用户提供的jre8 64位是针对64位windows平台而开发的java运行环境软件,全称为java se runtime environment 8,包括Java虚拟机、Java核心类库和支持文件,不包含开发工具--编译器、调试器和其它工具。jre需要辅助软件--JavaPlug-in--以便在浏览器中运行applet。本次小编带来的是jre8 64位官方版下载,版本小号u211版..._jre8是什么

kasp技术原理_KASP基因分型-程序员宅基地

文章浏览阅读5k次。KASP基因分型介绍KASP(Kompetitive Allele-Specific PCR),即竞争性等位基因特异性PCR,原理上与TaqMan检测法类似,都是基于终端荧光信号的读取判断,每孔反应都是采用双色荧光检测一个SNP位点的两种基因型,不同的SNP对应着不同的荧光信号。KASP技术与TaqMan法类似,它与TaqMan技术不同的是,它不需要每个SNP位点都合成特异的荧光引物,它基于独特的..._kasp是什么

华为p50预装鸿蒙系统,华为p50会不会预装鸿蒙系统_华为p50会预装鸿蒙系统吗-程序员宅基地

文章浏览阅读154次。华为现在比较火的还真就是新开发的鸿蒙系统了,那么在即将上市的华为p50手机上会不会预装鸿蒙系统呢?接下来我们就来一起了解一下华为官方发布的最新消息吧。1.华为p50最新消息相信大家都知道,随着华为鸿蒙OS系统转正日期临近,似乎全网的花粉们都在关注华为鸿蒙OS系统优化、生态建设等等,直接忽略了不断延期发布的华为P50手机,如今华为P50系列手机终于传来了最新的好消息,在经过一系列方案修改以后,终于被..._华为手机p50直接预装鸿蒙系统

随便推点

python用什么软件编程好-初学python编程,有哪些不错的软件值得一用?-程序员宅基地

文章浏览阅读2.1k次。Python编程的软件其实许多,作为一门面向大众的编程言语,许多修正器都有对应的Python插件,当然,也有特地的PythonIDE软件,下面我简单引见几个不错的Python编程软件,既有修正器,也有IDE,感兴味的朋友可以本人下载查验一下:1.VSCode:这是一个轻量级的代码修正器,由微软规划研发,免费、开源、跨途径,轻盈活络,界面精练,支撑常见的自动补全、语法提示、代码高亮、Git等功用,插..._python入门学什么好

pytorch一步一步在VGG16上训练自己的数据集_torch vgg训练自己的数据集-程序员宅基地

文章浏览阅读3.2w次,点赞30次,收藏307次。准备数据集及加载,ImageFolder在很多机器学习或者深度学习的任务中,往往我们要提供自己的图片。也就是说我们的数据集不是预先处理好的,像mnist,cifar10等它已经给你处理好了,更多的是原始的图片。比如我们以猫狗分类为例。在data文件下,有两个分别为train和val的文件夹。然后train下是cat和dog两个文件夹,里面存的是自己的图片数据,val文件夹同train。这样我们的..._torch vgg训练自己的数据集

毕业论文管理系统设计与实现(论文+源码)_kaic_论文系统设计法-程序员宅基地

文章浏览阅读968次。论文+系统+远程调试+重复率低+二次开发+毕业设计_论文系统设计法

在python2与python3中转义字符_Python 炫技操作:五种 Python 转义表示法-程序员宅基地

文章浏览阅读134次。1. 为什么要有转义?ASCII 表中一共有 128 个字符。这里面有我们非常熟悉的字母、数字、标点符号,这些都可以从我们的键盘中输出。除此之外,还有一些非常特殊的字符,这些字符,我通常很难用键盘上的找到,比如制表符、响铃这种。为了能将那些特殊字符都能写入到字符串变量中,就规定了一个用于转义的字符 \ ,有了这个字符,你在字符串中看的字符,print 出来后就不一定你原来看到的了。举个例子>..._pytyhon2、python3对%转义吗

java jar 文件 路径问题_「问答」解决jar包运行时相对路径问题-程序员宅基地

文章浏览阅读1.3k次。我这几天需要做一个Java程序,需要通过jar的形式运行,还要生成文件。最终这个程序是要给被人用的,可能那个用的人还不懂代码。于是我面临一个问题:生成的文件一定不能存绝对路径。刚开始我想得很简单,打绝对路径改成相对路径不就行了吗?于是有了这样的代码:String path = "../test.txt";File file = new File(path);……这个写法本身并没有问题,直接运行代码..._jar启动文件路径中存在!

微信读书vscode插件_曾经我以为 VSCode 是程序员专属的工具,直到发现了这些……...-程序员宅基地

文章浏览阅读598次。如果你知道 VSCode,一说起它,你可能第一个想到的就是把它当做一个代码编辑器,而它的界面应该可能大概率是这样的——如果你恰好又是个程序员,那你可能经常会用到它,不管是 Python、JS 还是 C++ 等各种语言对应的文件,都可以用它来进行简单的编辑和整理,甚至是运行和 debug......但是今天要讲的显然不是这些,经过小美的多方研究,发现了即使是对于大多数并不了解 VSCode,也完全不..._vscode weixin read