一个泛型 Stack,装两种东西

👁️ 1 人浏览 💬 0 人评论 ❤️ 添加收藏

(本条路线统一用 g++ -std=c++17 -O0 -Wall 编译)

#include <iostream>
#include <string>
#include <vector>

template <typename T>
class Stack {
public:
    void push(const T &v) { data_.push_back(v); }
    T pop() { T v = data_.back(); data_.pop_back(); return v; }
    bool empty() const { return data_.empty(); }
    int size() const { return static_cast<int>(data_.size()); }
private:
    std::vector<T> data_;
};

int main() {
    Stack<int> si;
    si.push(1); si.push(2); si.push(3);
    int a = si.pop();

    Stack<std::string> ss;
    ss.push("x"); ss.push("y");
    std::string b = ss.pop();

    std::cout << si.size() << "/" << a << "/"
              << ss.size() << "/" << b << "/" << si.empty() << "\n";
    return 0;
}
提交你的答案
请登录后提交答案。
去登录
代码编辑器
Ctrl + Enter 运行
本次输入:
输出:

                        
👩‍🏫
AI
💬 题目评论

全部评论