题解 | #【模板】栈#

#include <iostream>
#include <deque>

template<typename T>
class MyStack
{
    std::deque<T> c; // 容器

public:
    bool Empty() 
    {
        return c.empty();
    }

    size_t Size() 
    {
        return c.size();
    }

    const T& Top() 
    {
        return c.back();
    }

    void Push(const T& value) 
    {
        c.push_back(value);
    }

    void Pop() 
    {
        c.pop_back();
    }
};

int main()
{
    MyStack<int> myStack;

    int n; // 对栈执行n次操作
    std::cin >> n;
    while (n--)
    {
        std::string op; // 操作名称
        std::cin >> op;
        if (op == "push")
        {
            int x;
            std::cin >> x;
            myStack.Push(x);
        }
        else if (op == "pop")
        {
            if (myStack.Empty())
            {
                std::cout << "error\n";
            }
            else
            {
                std::cout << myStack.Top() << '\n';
                myStack.Pop();
            }
        }
        else if (op == "top")
        {
            if (myStack.Empty())
                std::cout << "error\n";
            else
                std::cout << myStack.Top() << '\n';
        }
    }
}

全部评论

相关推荐

10-09 09:19
已编辑
沈阳农业大学 C++
修订
丿南烟丶:个人评价可以删掉 两个项目都是轮子项目,把一个转换成应用型项目,把MySQL和redis用起来 另外项目的时间可以标明一下
最后再改一次简历
点赞 评论 收藏
分享
notbeentak...:孩子,说实话,选择很重要,可能你换一个方向会好很多,但是现在时间不太够了,除非准备春招
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务