STL库教程

STL(Standard Template Library),中译为“标准模板库”,是C++标准库的核心组成部分,提供了一套成熟、高效、可复用的通用模板类与函数。对于热衷算法竞赛,尤其是准备参加蓝桥杯、ACM等顶尖竞赛的C/C++组的竞赛选手,是必须会的基本技能。

STL体系由六大组件构成:容器、算法、迭代器、仿函数、适配器与空间配置器。本教程将致力于讲解算法、容器、迭代器这个“基本三件套”,让读者深入了解 <vector>、<string>、<map> 等常用容器及其配套算法,帮助读者脱离“重复造轮子”困境,写出更简洁、健壮的C++代码,在算法竞赛与求职面试中游刃有余,应对自如!

第一章 STL基础

1.C++ STL是什么?

2.浅谈C++ STL的发展史

3.C++ STL竟然有这么多个版本

4.为什么说C++ STL是C/C++程序员的基本功?

5.C++模板是什么?

6.C++泛型编程是什么?

7.浅谈C++ STL的基本组成部分

8.为什么说“时间复杂度是衡量算法效率的核心指标“?

9.浅谈GUN开源精神

第二章 STL序列式容器

1.C++ STL容器简介

2.C++ STL迭代器简介

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

4.C++ STL容器有哪些常用成员函数和成员变量?

5.C++ STL array容器入门

6.C++ STL array容器如何访问元素?

7.千万别认为C++ STL array容器是动态数组!

8.C++ STL vector容器入门

9.深入学习C++ STL vector容器的迭代器

10.C++ STL vector容器如何访问元素?

11.使用vector时,千万别混淆了capacity()和size()

12.深度剖析C++ STL vector容器的底层构造

13.还有人不知道C++ STL vector容器的emplace_back()成员函数?

14.C++ STL vector容器如何在指定位置前插入元素?

15.C++ STL vector容器如何删除元素?

16.C++ STL vector容器性能优化小技巧

17.C++ STL vector容器冗余大量空间,你会怎么做?

18.C++ STL vector<bool> - STL容器的败笔!

19.C++ STL deque容器入门

20.深入学习C++ STL deque容器的迭代器

21.深度剖析C++ STL deque容器的底层构造

22.C++ STL deque容器如何访问元素?

23.C++ STL deque容器如何增删元素?

24.C++ STL list容器入门

25.深入学习C++ STL list容器的迭代器

26.深度剖析C++ STL list容器的底层构造

27.C++ STL list容器如何访问元素?

28.C++ STL list容器如何添加元素?

29.判断C++ STL list容器是否为空,都给我用empty()!

30.C++ STL list容器如何删除元素?

31.C++ STL forward_list容器入门

第三章 STL有序关联式容器

1.C++ STL关联式容器简介

2.C++ pair模板类入门

3.C++ STL map容器入门

4.深入学习C++ STL map容器的迭代器

5.C++ STL map容器如何获取值(value)?

6.C++ STL map容器如何添加元素?

7.C++ STL map容器中,insert()和'[]'谁的插入效率更高?

8.深入学习C++ STL map容器的成员函数emplace_hint()

9.深度剖析C++ STL map容器emplace()和emplace_hint()高效插入元素的底层机制

10.C++ STL map容器如何删除元素?

11.C++ STL multimap容器入门

12.C++ STL set容器入门

13.深入学习C++ STL set容器的迭代器

14.C++ STL set容器如何添加元素?

15.C++ STL set容器如何删除元素?

16.C++ STL multiset容器入门

17.C++ STL有序关联式容器如何更改排序规则?

18.不要试图修改C++ STL有序关联式容器内元素的键(key)!

第四章 STL无序关联式容器

1.C++ STL无序关联式容器简介

2.深度剖析C++ STL无序关联式容器的底层构造

3.C++ STL unordered_map容器入门

4.深入学习C++ STL unordered_map容器的迭代器

5.C++ STL unordered_map容器如何获取值(value)?

6.C++ STL unordered_map容器如何添加元素?

7.C++ STL unordered_map容器如何删除元素?

8.C++ STL unordered_multimap容器入门

9.C++ STL unordered_set容器入门

10.C++ STL unordered_multiset容器入门

11.C++ STL无序关联式容如何处理自定义数据类型?

12.C++ STL容器该如何选择?

第五章 STL容器适配器

1.C++ STL容器适配器简介

2.C++ STL stack容器适配器入门

3.C++ STL stack适配器实现计算器

4.C++ STL queue适配器入门

5.C++ STL queue容器适配器模拟银行活动

6.C++ STL priority_queue适配器入门

7.C++ STL priority_queue如何更改堆顶元素选取规则?

8.深度剖析C++ STL priority_queue适配器底层的堆结构

第六章 STL迭代器适配器

1.C++ STL迭代器适配器简介

2.C++ STL 反向迭代器适配器入门

3.C++ STL 插入迭代器适配器入门

4.C++ STL 流迭代器适配器入门

5.C++ STL 流缓冲区迭代器入门

6.C++ STL 移动迭代器入门

7.C++ STL 迭代器辅助函数advance()入门

8.C++ STL迭代器辅助函数distance()入门

9.C++ STL 迭代器辅助函数prev(it , n)和next(it , n)入门

第七章 C++常用算法(一)

1.C++ STL 排序算法std::sort()函数入门

2.C++ STL 排序算法std::stable_sort()函数入门

3.C++ STL 排序算法std::partial_sort()函数入门

4.C++ STL 排序算法std::nth_element()函数入门

5.C++ STL 排序算法std::is_sorted()函数入门

6.C++ STL 排序算法总结

7.C++ STL 合并算法std::merge()函数入门

8.C++ STL查找算法std::find()函数入门

9.C++ STL遍历算法std::for_each()函数入门

10.C++ STL 函数重名时,你会选择成员函数还是模板函数?

11.C++ STL按条件查找算法std::find_if()函数入门

12.C++ STL序列查找算法std::find_end()函数入门

13.C++ STL序列查找算法std::find_first_of()函数入门

14.C++ STL序列查找算法std::adjacent_find()函数入门

15.C++ STL序列查找算法std::search()函数入门

16.C++ STL序列查找算法std::search_n()函数入门

17.C++ STL分区算法std::partition()函数入门

18.C++ STL分区算法std::partition_copy()函数入门

19.C++ STL分区算法std::partition_point()函数入门

20.C++ STL二分查找std::lower_bound()函数入门

21.C++ STL二分查找std::upper_bound()函数入门

22.C++ STL二分查找std::equal_range()函数入门

23.C++ STL二分查找std::binary_search()函数入门

第八章 C++常用算法(二)

1.C++ STL谓词判断算法std::all_of()函数入门

2.C++ STL比较算法std::equal()函数入门

3.C++ STL比较算法std::mismatch()函数入门

4.C++ STL比较算法std::lexicographical_compare()函数入门

5.C++ STL排列组合算法std::next_permutation()函数入门

6.C++ STL排列组合算法std::prev_permutation()函数入门

7.C++ STL排列组合算法std::is_permutation()函数入门

8.C++ STL复制算法std::copy_n()函数入门

9.C++ STL复制算法std::copy_if()函数入门

10.C++ STL复制算法std::copy_backward()函数入门

11.C++ STL复制算法std::reverse_copy()函数入门

12.C++ STL移除算法std::unique()函数入门

13.C++ STL旋转算法std::rotate()函数入门

14.C++ STL旋转算法std::rotate_copy()函数入门

15.C++ STL工具函数std::move()函数入门

16.C++ STL区间交换算法std::swap_ranges()函数入门

17.C++ STL移除算法std::remove()函数入门

18.C++ STL填充算法std::fill()函数入门

19.C++ STL填充算法std::generate()函数入门

20.C++ STL转换算法std::transform()函数入门

21.C++ STL替换算法std::replace()函数入门

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

Dotcpp在线编译      (登录可减少运行等待时间)