C++第10课 STL容器 (五)

1.队列

先进先出

/*
    push();
    pop();
    front();
    size();
    empty();
*/
using namespace std;
void testQueue() 
{
    queue<string> strQue;
    strQue.push("Love");
    strQue.push("520");
    strQue.push("me");
    cout << strQue.size() << endl;
    while (!strQue.empty()) 
    {
        cout << strQue.front() << "\t";
        strQue.pop();
    }
    cout << endl;
}
class MM 
{
public:
    MM(string name, int age) :name(name), age(age) {}
    string getName()const { return name; }
    int getAge()const { return age;}
protected:
    string name;
    int age;
};

void testUserData() 
{
    queue<MM> mmQue;
    mmQue.push(MM("小芳", 18));
    mmQue.push(MM("小美", 28));
    mmQue.push(MM("小小", 25));
    while (!mmQue.empty()) 
    {
        cout << mmQue.front().getName() << "\t" << mmQue.front().getAge() << endl;
        mmQue.pop();
    }
}

2.简单实现queue

template <class _Ty>
class MyQueue 
{
public:
    MyQueue() {}
    void push(_Ty data) { mem.push_back(data); }
    void pop() { mem.erase(mem.begin()); }
    _Ty front() { return mem[0]; }
    int size() { return mem.size(); }
    int empty() { return mem.empty();}
protected:
    vector<_Ty> mem;
};

 

posted @ 2021-09-08 21:08  Creature_lurk  阅读(26)  评论(0编辑  收藏  举报