zoukankan      html  css  js  c++  java
  • C++之queue模板类

    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;//输出a
    	temp='c';
    	cout<<myQueue1.front()<<endl;//输出a
    	myQueue1.pop();
    	temp=myQueue1.front();
    	cout<<temp<<endl;//输出b
    	return 0;
    }


    4.其他

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

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



  • 相关阅读:
    Odoo Entypo Regular Icon List
    Ubuntu 循环遍历当前目录下所有文本文件中的字符
    FairyGUI学习
    FairyGUI和NGUI对比
    热更新有多重要?游戏代码热更新杂谈
    收藏的链接
    Vuforia AR实战教程
    BleedTree动画混合树
    Unity3d导出安卓版本
    Unity+高通Vuforia SDK——AR
  • 原文地址:https://www.cnblogs.com/engineerLF/p/5393086.html
Copyright © 2011-2022 走看看