C++队列应用
2016-09-20 19:21
316 查看
这里把上篇里队列中的int数据变为自己定义的类型。
首先自己要定义一个类,在类中定义所需要的成员变量,下面是我定义的类和相关函数:
这里面要注意,构造函数Customer()要传入默认参数。
原来传入的是int,现在传入的是自己定义的对象,具体实现见下列代码
这里先实例化了对象c1,c2,c3,c4,然后将对象传入,就可以。
所以在Queue的函数实现的时候,有这些地方有变化。
下面Customer是变了的地方。而且指针类型变为了Customer* m_pQueue。
具体代码如下
最后,还要注意遍历函数的不一样
因为m_pQueue[i%m_iQueueCapaticy]这个数组里的元素为Customer对象,所以输出直接调用printInfo()即可。
具体代码如遇到问题,可以发邮箱dx_dove@163.com,相互交流,谢谢!
首先自己要定义一个类,在类中定义所需要的成员变量,下面是我定义的类和相关函数:
#ifndef Customer_h_ #define Customer_h_ #include<string> using namespace std; class Customer { public: Customer(string name=" ", int age=0); void printInfo(); private: string m_sName; int m_iAge; }; #endif
这里面要注意,构造函数Customer()要传入默认参数。
原来传入的是int,现在传入的是自己定义的对象,具体实现见下列代码
int main() { Queue *p = new Queue(4); Customer c1("aaa", 20); Customer c2("bbb", 21); Customer c3("ccc", 22); Customer c4("ddd", 23); Customer c5("", 0); p->enterQueue(c1); p->enterQueue(c2); p->enterQueue(c3); p->enterQueue(c4); }
这里先实例化了对象c1,c2,c3,c4,然后将对象传入,就可以。
所以在Queue的函数实现的时候,有这些地方有变化。
下面Customer是变了的地方。而且指针类型变为了Customer* m_pQueue。
具体代码如下
#ifndef Queue_h_ #define Queue_h_ #include "Customer.h" class Queue { public: Queue(int QueueCapaticy);//构造函数来产生一个内存空间,用来存放队列 ~Queue();//析构函数用来释放内存空间 void clearQueue();//清楚队列里的数据 bool emptyQueue() const;//判断队列是否为空队列 int QueueLen();//返回值为队列长度 void enterQueue(*Customer* element);//数据进入队列 void deleteQueue(*Customer* &element);//删除队列里的数据 bool fullQueue();//判断队列是否满状态,满了就不能插入数据了 void travelQueue();//遍历数列里的数据 private: int m_iQueueCapaticy;//队列存储内存空间大小 int m_iQueueLen;//记录队列长度 int m_iHead;//队列头 int m_iTail;//队列尾 Customer* m_pQueue;//队列指针 }; #endif
最后,还要注意遍历函数的不一样
void Queue::travelQueue()//遍历数列里的数据 { for (int i = m_iHead; i < m_iHead + m_iQueueLen; i++) { m_pQueue[i%m_iQueueCapaticy].printInfo(); } }
因为m_pQueue[i%m_iQueueCapaticy]这个数组里的元素为Customer对象,所以输出直接调用printInfo()即可。
具体代码如遇到问题,可以发邮箱dx_dove@163.com,相互交流,谢谢!
相关文章推荐
- c++ 中缀表达式转后缀表达式并计算值
- NOIP 2010 - 提高组 引水入城 棋盘上的BFS+区间覆盖(贪心) 重庆一中高2018级竞赛班第十次测试 2016.9.16 Problem 4
- lesson07-17 各数据类型,printf,scanf函数格式
- C++Primer 中文版第5版 习题3.31/3.32
- 组件(Component)
- 破译密码 动态规划 重庆一中高2018级竞赛班第十次测试 2016.9.16 Problem 3
- C++Primer 中文版第5版 习题3.26
- c++(15)处理类型--decltype类型指示符
- Java与C++Socket通讯注意
- c语言strtod()函数的用法
- 破译密码
- 【风马一族_C】c语言版,在2到n中寻找出所有的素数
- 完美世界2017C++游戏开发笔试编程题
- 1109. Group Photo
- C++重载 覆盖 隐藏
- 值得推荐的C/C++框架和库 (真的很强大)
- 1110. Complete Binary Tree
- CEF3开发者系列之JS与C++交互之二
- UVa - 1625 Color Length 颜色的长度 动态规划 重庆一中高2018级竞赛班第十次测试 2016.9.16 Problem 2
- C/C++ volatile