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

时间:2021-09-08
本文章向大家介绍C++第10课 STL容器 (四),主要包括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;
};

原文地址:https://www.cnblogs.com/creature-lurk/p/15244511.html