STL
C++ STL库
Worthy_Wang
一辈子没办法做太多事情,所以每一件都要做到精彩绝伦。
展开
-
STL库简述
STL简述STL库包含六个大类:容器库算法库迭代器库配置器(allocator)适配器(adaptor)仿函数(函数对象)其中后四个类主要为前两个类服务。其中使用频率最高的就是容器库,迭代器库,算法库。容器库为我们提供了存储数据的数据结构,算法库则是我们操作数据结构的算法,迭代器库作为容器库和算法库的黏合剂。容器库容器库整体分为 序列型容器 , 关联型容器 , 容器适配器。1.序列型容器主要包括 list,vector,deque,set。以vector作为学习实例:S原创 2020-07-16 12:14:40 · 797 阅读 · 2 评论 -
STL 迭代器(二) 迭代器失效情况分析
C++ STL iterator迭代器失效情况分析文章目录C++ STL iterator迭代器失效情况分析前言一.连续空间式存储 vector deque二.链表式存储 list三.红黑树存储 map set前言迭代器失效的问题需要具体情况具体分析:最重要的是分析容器在内存中的存储方式,判断进行操作之后整个空间有没有被重新分配,或者哪些空间有没有失效下面来分析三种不同内存存储方式下的...原创 2020-03-24 10:10:12 · 211 阅读 · 0 评论 -
STL 迭代器(一) 迭代器操作详解
文章目录前言一.Functions(函数)操作二.Iterator generators三.predefined iterator1.insert_iterator、back_insert_iterator、front_insert_iterator2.reverse_iterator3.istream_iterator ostream_iterator4.std::move 与 std::m...原创 2020-03-24 10:01:29 · 441 阅读 · 0 评论 -
STL 配置器allocator 实现vector类
C++ STL allocator配置器详解与 Vector类实现文章目录C++ STL allocator配置器详解与 Vector类实现一.STL allocator配置器详解1.在容器中感受allocator2.std::allocator的基本用法3.std::allocator的泛型编程4.allocator配置类类型二.通过allocator实现Vector类一.STL allo...原创 2020-03-24 09:41:22 · 712 阅读 · 0 评论 -
STL 适配器adapter
C++ 函数适配器与容器适配器adapter文章目录C++ 函数适配器与容器适配器adapter前言一.函数适配器 bind1nd、bind2nd二.容器适配器前言我们在日常生活中需给电脑充电,电脑时无法直接承受强大的电压,所以我们需要使用一个适配器来对电压进行转换,让我们的电脑能够通过适配器来充电。在C++ STL中,我们想使用一个已经规定好的模板,但是这个模板需要做一些转换才能供我们...原创 2020-03-24 09:20:27 · 304 阅读 · 0 评论 -
STL 仿函数(一) bind函数回调
bind函数适配器、利用bind回调实现无继承多态、men_fn将成员函数转换为函数对象文章目录bind函数适配器、利用bind回调实现无继承多态、men_fn将成员函数转换为函数对象一.bind函数适配器详解前言.C语言与C++中函数指针回顾1.function + bind 绑定普通函数2.绑定类中的成员3. cref,ref与bind结合使用二.没有继承关系的情况下使用bind实现多态三...原创 2020-03-24 09:11:59 · 590 阅读 · 0 评论 -
STL 容器(二) set,unordered_set
C++ STL set集合中的元素排序文章目录C++ STL set集合中的元素排序0.在类中将运算符()重载,那么这个类就可以当作函数使用1.类中的操作符重载2.函数与函数指针3. 使用std::greater std::less4.class类型与enum 类型专用: 重载运算符< bool operator<(const class& c1, const class&...原创 2020-03-17 09:02:14 · 380 阅读 · 0 评论 -
STL仿函数(二) bind1st,bind2nd
C++ STL 头文件与bind1st、bind2nd函数文章目录C++ STL 头文件与bind1st、bind2nd函数@[toc]前言一.用二元函数(binary_function)判断输入的两个数是否相等二.用一元函数(unary_function)判断是否为奇数三.bind1st bind2nd前言我们经常使用的std::less, std::greater , 也是public...原创 2020-03-16 18:12:47 · 430 阅读 · 0 评论 -
STL 算法库algorithm
C++ STL < algorithm > 头文件中的函数文章目录C++ STL < algorithm > 头文件中的函数@[toc]前言一.for_each二.count_if三.find_if四.unique五.sort 与 std::less std::greater六.remove_if七.move八.copy copy_if九.merge前言有了 #in...原创 2020-03-16 15:49:19 · 429 阅读 · 0 评论 -
STL 容器(一) vector
STL vector辅助函数:print 函数template <typename T>void print(vector<T>& vec) { for (int i = 0; i < vec.size(); i++) cout << vec[i] << ","; cout << "vec.size():...原创 2020-02-03 16:00:25 · 174 阅读 · 0 评论 -
STL 容器(三) map和unordered_map
STL map此处引用官方文档:http://www.cplusplus.com/reference/map/map/1.MemberFunctionconstructorvoid test1() { map<char, int> first; first['a'] = 97; first['b'] = 98; first['c'] = 99; map&l...原创 2020-02-03 09:23:38 · 551 阅读 · 0 评论 -
C++ 智能指针:shared_ptr, unique_ptr, weak_ptr
智能指针此篇文章参考于:https://www.cnblogs.com/wuyepeng/p/9741241.html智能指针的作用:用来自动释放空间,可以避免内存泄漏与野指针的情况。目前有常用的三种智能指针:shared_ptrunique_ptrweak_ptrauto_ptr(已经被C++11弃用)一.shared_ptrshared_ptr总结:1.智能指针...原创 2020-01-15 14:55:10 · 177 阅读 · 1 评论