C++第10课 STL容器 (四)
1.stack
后进先出
/* 1.基本操作 push(); pop(); top(); size(); empty(); */ void testStack() { stack<int> s; for (int i = 0; i < 10; i++) { s.push(i); } cout << s.size() << endl; while (!s.empty()) { cout << s.top() << endl; s.pop(); } } class MM { friend ostream& operator<<(ostream& out, const MM& obj); public: MM(string name, int age) :name(name), age(age) {} protected: string name; int age; }; ostream& operator<<(ostream& out, const MM& obj) { out << obj.name << "\t" << obj.age << endl; return out; } void testUserData() { stack<MM> sm; MM mm[3] = { {"小可爱",14},{"小宝贝",12},{"小帅哥",16} }; for (int i = 0; i < 3; i++) { sm.push(mm[i]); } cout << sm.size() << endl; while (!sm.empty()) { cout << sm.top() << endl; sm.pop(); } }
2.简单实现stack
template<class T> class myStack { public: void push(T data) { memory.push_back(data); } void pop() { memory.pop_back(); } int size() { return memory.size(); } T top() { return memory.back(); } bool empty() { return memory.size() == 0; } protected: std::vector<T> memory; };
浙公网安备 33010602011771号