![](https://img-blog.csdnimg.cn/2020011317543796.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
STL标准库
文章平均质量分 81
标准库
拥抱@
时刻提醒自己:自信力 自控力 执行力 精准的语言表达能力 敏锐的逻辑思维
展开
-
C++ allocator类的学习理解以及简单使用
前言在学习STL中containers会发现C++ STL里定义了很多的容器(containers),每一个容器的第二个模板参数都是allocator类型,而且默认参数都是allocator。但是allocator到底是什么?有什么作用呢?接下来就围绕着是什么和有什么作用来展开,其中最后补充一下如何去使用默认的allocator。由于本人学习尚浅,各种blog和msdn学习了几天,依然还是不...原创 2018-12-31 12:53:54 · 1367 阅读 · 0 评论 -
STL学习——浅谈string类的模拟实现
C++ 的一个常见面试题是让你实现一个 String 类,限于时间,不可能要求具备 std::string 的功能,但至少要求能正确管理资源。具体来说:1.能像 int 类型那样定义变量,并且支持赋值、复制。2.能用作函数的参数类型及返回类型。3.能用作标准库容器的元素类型,即 vector/li...原创 2019-06-19 18:50:43 · 246 阅读 · 0 评论 -
STL学习——浅谈vector类的模拟实现
vector的文档介绍vector简介:vector是表示可变大小数组的序列容器。就像数组一样,vector也采用的连续存储空间来存储元素。也就是意味着可以采用下标对vector的元素进行访问,和数组一样高效。但是又不像数组,它的大小是可以动态改变的,而且它的大小会被容器自动处理。本质讲,vector使用动态分配数组来存储它的元素。当新元素插入时候,这个数组需要被重新分配大小为了增加存...原创 2019-06-19 20:32:28 · 212 阅读 · 0 评论 -
STL学习——浅谈List类的模拟实现
本文模拟实现了c++标准模板库中的List。 它的底层实现是一个带头结点的双向循环链表。 一个注意要点是,不同于vector和string的迭代器的封装typedef T* IteratorList 采用了一个类来封装迭代器...原创 2019-06-20 15:13:49 · 227 阅读 · 0 评论 -
STL学习——浅谈空间配置器
1. 什么是空间配置器 空间配置器,顾名思义就是为各个容器高效的管理空间(空间的申请与回收)的,在默默地工作。虽然在常规使用STL时,可能用不到它,但站在学习研究的角度,学习它的实现原理对我们有很大的帮助。2. 为什么需要空间配置器 &nb...原创 2019-06-25 21:13:09 · 300 阅读 · 0 评论 -
STL学习——hash_map的模拟实现
hash_map我们应该知道底层是基于hash表实现的。Hash_Table的开散列和闭散列的实现,我们在前几篇文章中也简单的介绍并且实现了。所以这篇文章基于之前的知识,对于哈希表做进一步的改造和封装。然后再模拟实现出我们C++STL中的hash_map。1.哈希表的进一步改进与封装K:关键码类型V: 不同容器V的类型不同,如果是unordered_map,V代表一个键值对,如果是unord...原创 2019-06-27 10:44:13 · 250 阅读 · 0 评论 -
STL学习——priority_list的使用和学习
引入说白了,就是一种功能强大的队列。如果不太清楚队列,可以看看我这篇博客。它的功能强大在哪里呢?四个字:自动排序。优先队列的头文件声明首先,你需要#include<queue>using namespace std;这两个头文件。其次,一个优先队列声明的基本格式是:priority_queue<结构类型> 队列名;比如:priority_queue...转载 2019-07-13 09:23:04 · 1349 阅读 · 0 评论