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