模拟实现
TLpigff
这个作者很懒,什么都没留下…
展开
-
生产者与消费者模型
生活中我们知道生产者与消费者之间的关系,生产者生产产品,消费者消费产品。在实际的软件开发中,也会遇到类似的情形:一个模块产生数据,另一个模块负责处理这些数据。产生数据的模块就可以形象地被称为生产者,处理数据的模块则被称为消费者。 然而只有生产者与消费者,还不算是生产者/消费者模式。在现实生活中,生产者生产出了产品,一般则会有中间商来进货,进而再出售给消费者。所以在这个模型中,这个中间商则被形象原创 2017-06-25 13:10:53 · 439 阅读 · 0 评论 -
C++中的智能指针
以下四个智能指针都是boost库中的1.auto_ptr 管理权转移,带有缺陷的设计。尽量不要使用它2.scoped_ptr 防拷贝,高效简洁。不需要拷贝/赋值,尽量使用它3.shared_ptr 共享(引用计数)管理、支持赋值/拷贝。缺陷:循环使用(针对循环使用有weak_ptr).4.weak_ptr辅助shared_ptr解决循环引用,不增加引用计数。下面是关于auto_ptr的模原创 2017-06-14 20:55:30 · 825 阅读 · 0 评论 -
C++模板类实现顺序表
#pragma once#include<stdio.h>#include <iostream>#include<string>#include<assert.h>using namespace std;template <class T>class Vector{public: Vector() : _a(NULL) , _size(0)原创 2017-06-14 21:03:49 · 326 阅读 · 0 评论 -
STL库中的vector的使用和模拟实现
1.初识STL库STL库即标准模板库,它是一些容器的“集合”,诸如list,vector等。STL可分为容器,迭代器,空间配置器,算法,仿函数,适配器六个部分。本篇文章暂且讨论vector的使用与模拟实现。2.vector的使用vector可以理解成一个能够存放任意类型的动态数组,能够增加和删除数据。我们先来看看vector里都有些什么。 首先,肯定有的是构造函数,析构函数,和运算符重载。原创 2017-09-23 09:46:15 · 675 阅读 · 0 评论 -
STL库中的list的使用和模拟实现
简单介绍list上文我们讲到了STL库中的vector的使用和模拟实现,其实list和vector在很多地方都有相似之处。STL库中的list是一个双向循环链表。它的简单的结构如图 我们还是先来看看它里面有什么。list的内容与使用一. 首先还是雷打不动的三个成员函数,构造函数,析构函数和赋值运算符重载。二. 其次是迭代器。这里需要注意一下的是,begin()返回的是第一个元素的位置,原创 2017-09-24 11:25:34 · 664 阅读 · 0 评论 -
STL库中的stack和queue及其模拟实现
在学完了list和vector之后,紧接着就是与其相关联的两个数据结构栈(stack)和队列(queue)。栈的特点是先进后出,即先进栈的元素后出栈;队列的特点是后进先出,即先入队列的元素先出队列。 栈只允许在栈顶插入和删除数据,其基本结构如下 队列只允许在队尾插入数据,在队头删除数据,其基本结构如下 栈更像是一个线性表,因为vector的push_back 和 pop_back更容易原创 2017-10-06 10:12:12 · 485 阅读 · 0 评论