C++之queue模板类

来源:互联网 发布:桌面便签软件 推荐 编辑:程序博客网 时间:2024/06/08 08:15

1.queue常用成员函数

   ①size()       返回队列中元素的个数   ②empty()   如果队列空则返回真    ③back()     返回最后一个元素引用即队尾。   ④front()     返回第一个元素引用即队首。   ⑤pop()      删除第一个元素,即队首元素。不返回    ⑥push()     在末尾加入一个元素,即放置在队尾 。不返回

2.结构体和指针类queue

   注意:指针使用应该初始化,指针压栈效率更高

#include"iostream"#include"queue" using namespace std; typedef struct Data{ int data; } mydata; void initialization(mydata src[10]) {  for(int i=0;i<10;i++)  src[i].data=i;  }int _tmain(int argc, _TCHAR* argv[]){queue<mydata*> *myQueue=new queue<mydata*>;//指针一定初始化mydata src[10];initialization(src);for(int i=0;i<10;i++) myQueue->push(&src[i]);//指针压栈效率更高cout<<"最前和最后的元素是  "<<myQueue->front()->data<<"  "<<myQueue->back()->data<<endl;myQueue->pop();cout<<"最前和最后的元素是  "<<myQueue->front()->data<<"  "<<myQueue->back()->data<<endl;return 0;}

3.queue的深拷贝

    ①使用front()返回队首元素至某个变量,给变量的数据区数据改变不影响源队列元素的值    ②“=”可以直接深拷贝队列。从queue变量作函数参数可知。

#include"iostream"#include"queue"void print(queue<char> myQueue) { while(!myQueue.empty()) {cout<<myQueue.front()<<endl;       myQueue.pop();} }int _tmain(int argc, _TCHAR* argv[]){queue<char> myQueue1;myQueue1.push('a');myQueue1.push('b');print(myQueue1);//形参深拷贝        print(myQueue1); //仍旧能够输出          char temp=myQueue1.front();cout<<temp<<endl;//输出atemp='c';cout<<myQueue1.front()<<endl;//输出amyQueue1.pop();temp=myQueue1.front();cout<<temp<<endl;//输出breturn 0;}


4.其他

      (1)queue不提供元素的随机访问、遍历和删除操作。

       (2)可以使用swap函数交换两个同类型对象的内部值



0 0
原创粉丝点击