首页 > STL

STL教程:C++ STL快速入门(非常详细)

C++ 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函数用法详解