#include <stdio.h>
#include <iostream>
#include <string>
#include <queue>
using namespace std;
class CTestClass1
{
public:
CTestClass1(string str)
{
m_str=str;
}
virtual ~CTestClass1()
{
cout<<m_str<<" is ~~CTestClass1"<<endl;
}
string name()
{
return m_str;
}
string m_str;
};
typedef std::queue<CTestClass1*> Queue_List;
/*
Member functions
(constructor) Construct queue (public member function)
empty Test whether container is empty (public member function)
size Return size (public member function)
front Access next element (public member function)
back Access last element (public member function)
push Insert element (public member function)
pop Delete next element (public member function)
*/
int main ()
{
Queue_List myqueue;
CTestClass1 *temp1=new CTestClass1("temp1");
CTestClass1 *temp2=new CTestClass1("temp2");
CTestClass1 *temp3=new CTestClass1("temp3");
CTestClass1 *temp4=new CTestClass1("temp4");
myqueue.push(temp1);
myqueue.push(temp2);
myqueue.push(temp3);
myqueue.push(temp4);
CTestClass1 *conn = myqueue.front(); ///<----最先加入的放到第一位。
cout<<"queue front is:"<<conn->name()<<endl;
CTestClass1 *conn1 = myqueue.back();
cout<<"queue front is:"<<conn1->name()<<endl;
cout<<"myqueue size is"<<myqueue.size()<<endl;
while (!myqueue.empty())
{
CTestClass1 *conn = myqueue.front();
if (conn != NULL)
{
delete conn;
}
myqueue.pop();
}
return 0;
}
/*
g++ testQueue.cpp -o testQueue
sno@sno-desktop:~/0000$ ./testQueue
queue front is:temp1
queue front is:temp4
myqueue size is4
temp1 is ~~CTestClass1
temp2 is ~~CTestClass1
temp3 is ~~CTestClass1
temp4 is ~~CTestClass1
queue就是一个直筒子,先进的先出去。FIFO??????
*/