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; };