shushus

Спринт 5. Стек. Задание 1.

Dec 10th, 2022
228
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.05 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3.  
  4. using namespace std;
  5.  
  6. template <typename It>
  7. void PrintRange(It range_begin, It range_end) {
  8.     for (auto it = range_begin; it != range_end; ++it) {
  9.         cout << *it << " "s;
  10.     }
  11.     cout << endl;
  12. }
  13.  
  14. template <typename Type>
  15. class Stack {
  16. public:
  17.     void Push(const Type& element) {
  18.         elements_.push_back(element);
  19.     }
  20.     void Pop() {
  21.         elements_.pop_back();
  22.     }
  23.     const Type& Peek() const {
  24.         return elements_.back();
  25.     }
  26.     Type& Peek() {
  27.         return elements_.back();
  28.     }
  29.     void Print() const {
  30.         PrintRange(begin(elements_),end(elements_));
  31.     }
  32.     uint64_t Size() const {
  33.         return elements_.size();
  34.     }
  35.     bool IsEmpty() const {
  36.         return elements_.empty();
  37.     }
  38.  
  39. private:
  40.     vector<Type> elements_;
  41. };
  42. int main() {
  43.     Stack<int> stack;
  44.     for (uint32_t i = 0; i < 10; ++i) {
  45.         stack.Push(i);
  46.         stack.Print();
  47.     }
  48.     while (!stack.IsEmpty()) {
  49.         stack.Pop();
  50.         stack.Print();
  51.     }
  52. }
Advertisement
Add Comment
Please, Sign In to add comment