STL
文章平均质量分 66
Amberda
(ˉ▽ ̄~)
展开
-
基于Vector实现适配器stack(顺序栈)
栈遵循先进后出,后进先出的原则,它的插入和删除都是在栈顶进行操作,是一种特殊的线性顺序表,因此,实现栈我们通常建立在顺序表的基础上。下来我们利用之前实现过的容器Vector中的一部分接口来实现stack (在这里分别用了模板参数和模板的模板参数两种方式来实现来实现)stack.h:#define _CRT_SECURE_NO_WARNINGS 1#pragma once#include "Ve原创 2017-11-25 14:56:20 · 497 阅读 · 0 评论 -
基于List实现适配器queue(链式队列)
队列遵循先进先出,后进后出的原则,它有两个出口,从最底端加入元素、取得最顶端的元素。实现队列我们通常建立在链表的基础上。下来我们利用之前实现过的容器List中的一部分接口来实现queue (在这里分别用了模板参数和模板的模板参数两种方式来实现来实现)queue.h#pragma once#include "List.h"//模板参数template<class T,class Containe原创 2017-11-25 15:19:05 · 351 阅读 · 0 评论 -
STL-----模拟实现一级空间配置器
众所周知,STL中有六大组件:容器容器适配器仿函数迭代器算法空间配置器在之前的学习中前面五种我们都已经接触过了,但是在学习其他组件的过程中,我们会发现一个东西隐藏在了一切组件的背后,它就是空间配置器以STL的实现角度而言,空间配置器是第一个就需要介绍的组件。因为整个STL的操作对象都存放在容器之内,而容器一定需要配置空间来存放数据的。在我们平时写程序时,需要开辟空间可...原创 2018-05-11 22:30:25 · 351 阅读 · 0 评论 -
C++------浅拷贝、深拷贝和写时拷贝
浅拷贝先来看一个例子:class String {public: String(const char * pData = "") :_pData(new char[strlen(pData) + 1]) { strcpy(_pData, pData); } ~String() ...原创 2018-04-28 22:23:21 · 629 阅读 · 0 评论 -
STL-----浅析二级空间配置器
在之前我们已经简单介绍过STL中的一级空间配置器,并且进行了模拟实现 但是来看下面这个问题: 如图,阴影部分是我们开辟的不连续的小的内存块,空白区域是空闲的,如果现在要申请一段三个块大小的连续空间,可以申请出来吗?显然不能。但我们会发现系统剩余的内存明明足够我们需要的空间大小,可开辟太多了不连续的小块空间,导致没有办法开辟出来大块的内存,这就是内存碎片的问题。 STL中的二级空间配置器...原创 2018-05-26 18:05:59 · 843 阅读 · 9 评论