老师说到m_iQueueCapacity是一个常量的时候,突然觉得可以把这个成员用const修饰一下,防止对它做修改。然后在构造函数初始化列表中对它初始化。
const int m_iQueueCapacity; //队列数组容量
MyQueue::MyQueue(int queueCapacity)
:m_iQueueCapacity(queueCapacity)
{
m_iHead = 0;
m_iTail = 0;
m_iQueueLen = 0;
m_pQueue = new int[m_iQueueCapacity]; //从堆中申请内存有可能失败,这里暂且不处理
}
const int m_iQueueCapacity; //队列数组容量
MyQueue::MyQueue(int queueCapacity)
:m_iQueueCapacity(queueCapacity)
{
m_iHead = 0;
m_iTail = 0;
m_iQueueLen = 0;
m_pQueue = new int[m_iQueueCapacity]; //从堆中申请内存有可能失败,这里暂且不处理
}
2020-02-29
最新回答 / 董瘦瘦
1.用“StructName”替换Customer,结构体如下:struct StructName{ float a; float b; float c;};2.构造函数参数改成(float a=0, float b=0, float c=0)3.入队、出队时候声明的结构体变量的成员改成三个浮点型
2019-09-05
最赞回答 / 三夜蟲
STL里队列和栈的实现都基于双端队列deque,要比介绍的两种连续空间(可以理解为数组)的实现要复杂一些。deque括多段等长的连续空间和一组指向这些空间的指针,随机访问和首尾增删的效率比较高,同时不会占用大块内存。有兴趣的话可以在百度上搜一下deque的实现方法。
2019-06-23