Advertisement
Guest User

Untitled

a guest
Oct 17th, 2019
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.94 KB | None | 0 0
  1. // Example program
  2. #include <iostream>
  3. #include <string>
  4. #include <vector>
  5. #include <exception>
  6. #include <stdexcept>
  7. template <typename T>
  8. class Stack {
  9.   public:
  10.  
  11.   T pop() {
  12.     if (size() == 0) {
  13.       throw std::runtime_error("Stack is empty");
  14.     }
  15.     auto result = data.back();
  16.     data.erase(data.end() - 1);
  17.     return result;
  18.   }
  19.   void push(const T& value) {
  20.    data.emplace_back(value);  
  21.   }
  22.   std::size_t size() const {
  23.       return data.size();
  24.   }
  25.  
  26.   private:
  27.   std::vector<T> data;
  28.    
  29. };
  30.  
  31. int main()
  32. {
  33.     Stack<int> stack;
  34.     std::cout << stack.size() << std::endl;
  35.     stack.push(10);
  36.     stack.push(20);
  37.     try {
  38.         std::cout << stack.size() << std::endl;
  39.         std::cout << stack.pop() << std::endl;
  40.         std::cout << stack.pop() << std::endl;
  41.         std::cout << stack.pop() << std::endl;
  42.     } catch (std::exception &e) {
  43.         std::cout << e.what() << std::endl;
  44.     }
  45. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement