为充分利用向量空间,克服“假溢出”现象的方法是:将向量空间想象为一个首尾相接的圆环,并称这种向量为循环向量。存储在其中的队列称为循环队列(Circular Queue)。循环队列是把顺序队列首尾相连,把存储队列元素的表从逻辑上看成一个环,成为循环队列。
网上有很多关于循环队列实现原理的文章,讲解很详细,但是大多均只支持单个元素push和pop,有C语言版的也有C++版的,纯C语言版的有个问题就是对类型的处理都不是很好,经过查阅GitHub,发现有大牛基于std::array封装了一个C++的模板类库,唯一美中不足的地方有两点:
-
这个库基于std::array实现,是固定长度的,不能动态分配内存
-
这个库在VS2015中编译会出现问题,而在VS2017或更高版本的编译器中编译通过,如果要使用这个库,必须得把VS升级到2017以上的版本
头文件
#ifndef