MyQueue.cpp的代码如下:

#include "MyQueue.h"

#include

using namespace std;

/**

* 队列的初始化

* @param queueCapacity int

*/

MyQueue::MyQueue(int queueCapacity)

{

m_iQueueCapacity = queueCapacity;

m_pQueue = new int[m_iQueueCapacity];

ClearQueue();

}

/**

* 销毁队列

*/

MyQueue::~MyQueue()

{

delete []m_pQueue;

m_pQueue = NULL;

}

/**

* 清空队列

*/

void MyQueue::ClearQueue()

{

m_iHead = 0;

m_iTail = 0;

m_iQueueLen = 0;

}

/**

* 判断队列是否为空

* @return bool

*/

bool MyQueue::QueueEmpty() const

{

return m_iQueueLen == 0;

}

/**

* 判断队列是否已满

* @return bool

*/

bool MyQueue::QueueFull() const

{

// 可通过判断长度和容量是否相等来判断队列是否已满

return m_iQueueLen == m_iQueueCapacity;

}

/**

* 队列长度

* @return int

*/

int MyQueue::QueueLength() const

{

return m_iQueueLen;

}

/**

* 新元素入队

* @param element int

* @return bool

*/

bool MyQueue::EnQueue(int element)

{

// 在入队之前,需要判断队列是否已满,如已满不可插入

if (QueueFull()) {

return false;

}

m_pQueue[m_iTail] = element;

// 入队操作,队头不需要变化,队尾需要加1

m_iTail++;

// 取余操作,防止溢出。比如当容量为4的队列加满数据,此时队列出去一个数,则队尾指向数组[0]的位置。如果m_Tail++就会变成数组[5],所以用取余%——放队列放满4个数时,4%4=0,对尾自然指向了数组[0]。

m_iTail = m_iTail % m_iQueueCapacity;

m_iQueueLen++;

return true;

}

/**

* 首元素出队

* @param element int

* @return bool

*/

bool MyQueue::DeQueue(int &element)

{

// 在出队之前,需要判断队列是否已空,如已空不可出队

if (QueueEmpty()) {

return false;

}

// 这一步的意思是为了获得出队的元素的值

element = m_pQueue[m_iHead];

// 出队操作,队尾不需要变化,队头需要加1

m_iHead++;

m_iHead = m_iHead % m_iQueueCapacity;

m_iQueueLen--;

return true;

}

/**

* 遍历队列,输出所有元素值

*/

void MyQueue::QueueTraverse()

{

for (int i = m_iHead; i < m_iQueueLen + m_iHead; i++)

{

cout << m_pQueue[i % m_iQueueCapacity] << endl;

}

cout << endl;

}

MyQueue.h的代码如下:

/**

* 环形队列C++实现 (注释:讲解一些 C 语言用法)

*/

class MyQueue

{

public:

MyQueue(int queueCapacity); // InitQueue(&Q) 创建队列

virtual ~MyQueue(); // DestoryQueue(&Q) 销毁队列

void ClearQueue(); // ClearQueue(&Q) 清空队列

bool QueueEmpty() const; // QueueEmpty(Q)判空队列

bool QueueFull() const; // 判断队列是否已经满了

int QueueLength() const; // QueueLength(Q) 队列长度

bool EnQueue(int element); // EnQueue(&Q, element) 新元素入队

bool DeQueue(int &element); // DeQueue(&Q, &element)首元素出队

void QueueTraverse(); // QueueTraverse(Q,visit()) 遍历队列,visit()函数:访问的方法

private:

int *m_pQueue; // 队列数组指针

int m_iQueueLen; // 队列元素个数

int m_iQueueCapacity; // 队列数组容量

int m_iHead; // 队头

int m_iTail; // 队尾

};

编译MyQueue.cpp老是提示报错:

Dev-C++编辑器的版本为:5.11

编译器版本为:

电脑系统为:win7 64位

求解?

c++整理程序 dev_【C++】用Dev-C++写的C++程序老是报错,请问为什么?如何解决?...相关推荐

  1. linux系统读取excel文件是否存在,小弟我用poi读excel,在window下没有有关问题,但把程序放到linux上时,读取客户端的excel文件报错,不...

    我用poi读excel,在window下没有问题,但把程序放到linux上时,读取客户端的excel文件报错,不知道如何解决 我用poi读excel,在window下没有问题,但把程序放到linux上 ...

  2. DEV C++编写程序出现 [errror]Id returned 1 exit status报错可能出现的原因及解决办法

    前言: 在DEV C++编写程序时总是出现出现 [errror]Id returned 1 exit status报错,但是却找不到任何问题(气死人了),我就为此问题困扰了好几个月,看遍了所有网页.博 ...

  3. npm run dev (明明有.vue文件),却报错 cannot GET

    npm run dev (明明有.vue文件),却报错 cannot GET 其他问题: vuejs中执行npm run dev出现页面cannot GET/问题

  4. 微信小程序:errMsg“:“navigateTo:fail can not navigateTo a tabbar page 报错问题

    微信小程序关于:errMsg":"navigateTo:fail can not navigateTo a tabbar page 报错问题 原因 很有可能是由于在底部tabbar ...

  5. 【小程序踩坑系列5】小程序内多重调用原生promise,无返回,无报错,代码卡住...

    作者: 蒋欢 问题: 在部分IOS机型上,小程序内使用原生promise实现异步,在嵌套四层后,Promise的resolve和reject均无返回. 环境: 用户机型:iPhone 7 系统版本:I ...

  6. vue2.x 在引用插件的时候,npm run dev跑正常 ,npm run build 报错vue-cli Unexpected token: punc (() [...

    这是因为,引用的插件在node_modules里,并不在vue-cli的es6编译范围内,所以语法报错,修改方法: 转载于:https://www.cnblogs.com/cynthia-wuqian ...

  7. android开发 停止运行程序,开发的时候老是报错 XXXXX程序已停止运行。

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 package com.example.event3; import android.support.v7.app.ActionBarActivity; ...

  8. 钉钉小程序的坑 么有开启通讯录权限,导致后台报错“没有调用该接口的权限”

  9. 公众号模板消息 跳转小程序报错invalid weapp pagepath解决方法

    官方文档示例: "miniprogram":{"appid":"xiaochengxuappid12345","pagepath& ...

  10. Windows下python程序报错Nomodule named 'gevent'解决及ERROR: xxx.whl is not a supported wheel on this platform

    在windows下面直接简单安装gevent或其他库是不行的,必须使用源码包安装. 这里提供一个网址https://www.lfd.uci.edu/~gohlke/pythonlibs/ ,它是Win ...

最新文章

  1. 读阮一峰对《javascript语言精粹》的笔记,我有疑问。
  2. 消息称苹果正在组建新智能家居团队
  3. FastDFS图片服务器
  4. 【Android Gradle 插件】ProductFlavor 配置 ( ProductFlavor 引入 | ProductFlavor 参考文档地址 )
  5. 使用 Visual Studio Code SQLite 扩展来浏览 SAP Cloud Application Programming 数据库
  6. 《UNIXLinux程序设计教程》一2.1 UNIX 输入输出基本概念
  7. 时序列数据库武斗大会之 OpenTSDB 篇
  8. 电阻参数_贴片电阻的参数标识与贴片电阻的选择
  9. 简单的纯数字图像(如电话号码、数字验证码)识别
  10. python入门指南_Python中的逻辑门–入门指南
  11. 华为交换机 查ip冲突_华为交换机:如何解决网络中IP地址发生冲突故障?
  12. win10搭建无盘服务器配置,关于今天搞定网吧无盘Win10x64一包多配置到底的详细讲解 By 原来我不帅...
  13. 信号检测与估计理论_校对招募 | 信号检测论的贝叶斯估计
  14. 预测算法用java实现
  15. 【在线仿真】Arduino WS2812b环形24颗霓虹灯动态效果显示
  16. Mac小技巧——开启Google Chrome浏览器加速模式
  17. 2020德勤面试开始了吗_四大面试-德勤面试流程免费给你,还不收好?截止2020年9月...
  18. java使用pdfbox将PDF转化为图片
  19. 专业的音乐创作类软件,Helio最新版软件可以帮助用户处理音乐创作中遇到的各种问题。
  20. java 将多个文件打包成压缩包下载

热门文章

  1. mixin风格的bases class
  2. 拓端tecdat|R语言中的隐马尔可夫HMM模型实例
  3. 拓端tecdat|Python中利用长短期记忆模型LSTM进行时间序列预测分析 - 预测电力负荷数据
  4. 7-1 购买火车票 (15 point(s))
  5. L2-007 家庭房产 (25 point(s))
  6. python 根据父子信息 还原成json树
  7. yolov5数据集txt解析
  8. deepfake 资源总结
  9. 【DBN】Deep Belief Network简介
  10. Ubuntu16.04下修复宿主机时区错位8小时、修复容器相较于宿主机错位8小时问题