Advertisement
Guest User

Untitled

a guest
Oct 17th, 2019
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.10 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 top() {
  12.     if (size() == 0) {
  13.       throw std::runtime_error("Stack is empty");
  14.     }  
  15.     return data.back();
  16.   }
  17.  
  18.   void pop() {
  19.     if (size() != 0) {
  20.         data.erase(data.end() - 1);    
  21.     }
  22.   }
  23.  
  24.   void push(const T& value) {
  25.    data.emplace_back(value);  
  26.   }
  27.  
  28.   std::size_t size() const {
  29.       return data.size();
  30.   }
  31.  
  32.   void print() {
  33.    print(data.size());  
  34.   }
  35.  
  36.   void print(std::size_t elementCount) {
  37.     for (auto iter = data.crbegin(); iter < data.crbegin() + elementCount; ++iter) {
  38.         std::cout << *iter << std::endl;
  39.     }
  40.   }
  41.  
  42.   private:
  43.   std::vector<T> data;
  44.    
  45. };
  46.  
  47. int main()
  48. {
  49.     Stack<int> stack;
  50.     std::cout << stack.size() << std::endl;
  51.     stack.push(10);
  52.     stack.push(20);
  53.     try {
  54.         std::cout << stack.size() << std::endl;
  55.         stack.print(1);
  56.     } catch (std::exception &e) {
  57.         std::cout << e.what() << std::endl;
  58.     }
  59. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement