![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
STL
梅杏柿
这个作者很懒,什么都没留下…
展开
-
STL:Allocate学习笔记
决定还是两个都看,原来那个tinystl只注释,新的手打。allocate的设计,我只能说,是精妙到精妙,太精妙了!但是也太难了…………allocator.h#ifndef _ALLOCATOR_H_#define _ALLOCATOR_H_#include "Alloc.h"#include "Construct.h"#include <cassert>#include <new>namespace TinySTL{ /* **空间配置器,以变量数目原创 2021-03-03 11:16:43 · 301 阅读 · 0 评论 -
Allocate配置器学习笔记
首先看如果用户分配的内存大于128bytes, 如果大于直接用malloc。否则看freelist数组对应位置上有没有空余地址,如果有,那么返回这个位置上的地址块,并且把这个结点的下一个节点的地址放到数组里面。如果取出来的地址为空,那么调用refiil函数。void *alloc::allocate(size_t n){ obj **my_free_list; obj *result; if (n > MAXBYTES)//如果n>预设内存,调用第一级适配器原创 2021-03-04 09:14:00 · 235 阅读 · 1 评论 -
STL的less<>在容器中的应用
STL的set(map)中默认小的在前面;而priority_queue却是大的在前面。set和map:底层都是红黑树 less<> 最小堆,greater<>是最大堆。 默认是less。make_heap: less<>() 展现出来的是最大堆, greater<>()展现出来是最小堆。 默认是less。priority_queue: 底层是使用heap实现的,所以表现出来的特性和heap一致。less<>() 展现出来的是最大原创 2021-03-24 10:12:38 · 381 阅读 · 0 评论 -
STL学习笔记:deque
这个deque看的我真是累。问题太多了,所以因此打算换一个看。而且后面的map和set也不全,后面看似乎是基于AVL而不是RBT实现的,所以换一个。作者还是很厉害的,毕竟让我自己写,目前水平肯定写不出来。但是吐槽还是要吐的deque.h#ifndef _DEQUE_H_#define _DEQUE_H_#include "Allocator.h"#include "Iterator.h"#include "ReverseIterator.h"#include "Utility.h"/*d原创 2021-03-02 17:45:13 · 155 阅读 · 0 评论 -
STL学习笔记二:list
这个list最大问题在于结点没有形成闭环,且模板参数没有分配器#ifndef _LIST_H_#define _LIST_H_/*这个list没有形成一个闭环第16行、第33行、第49行。第72行,第73行第112行。list没有分配器*/#include "Allocator.h"#include "Iterator.h"#include "ReverseIterator.h"#include "UninitializedFunctions.h"#include <type原创 2021-03-02 17:35:59 · 119 阅读 · 0 评论 -
STL学习笔记:vector
一开始我是学习的这个 STL实现项目我是照着打一遍,然后一行一行注释。但是学到deque,发现deque的部分写的很差,所以打算去跟着收藏更多的 MyTinySTL 学习先把已经学习过的三个传上来。我注释的可能不对,而且还有一些我没弄明白的剩余了下来#ifndef _VECTOR_H_//#define#endif一起使用,防止头文件被包含两次相当于#pragma once#define _VECTOR_H_//本头文件包含一个模板类 vector//vector:向量/*notes:异原创 2021-03-02 17:28:30 · 136 阅读 · 0 评论