Advertisement
Art_Uspen

Untitled

Feb 27th, 2021
133
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.64 KB | None | 0 0
  1. #include <algorithm>
  2. #include <deque>
  3. #include <iostream>
  4. #include <vector>
  5.  
  6. template<typename T, typename Container = std::deque<T>>
  7. class Queue {
  8. private:
  9.     Container container_;
  10.  
  11. public:
  12.     Queue() = default;
  13.  
  14.     [[nodiscard]] Container getter() const {
  15.         return container_;
  16.     }
  17.  
  18.     [[nodiscard]] T front() const {
  19.         return container_.front();
  20.     }
  21.  
  22.     T &front() {
  23.         return container_.front();
  24.     }
  25.  
  26.     void pop() {
  27.         container_.pop_front();
  28.     }
  29.  
  30.     void push(T &&item) {
  31.         container_.push_back(item);
  32.     }
  33.  
  34.     void push(T &item) {
  35.         container_.push_back(std::move(item));
  36.     }
  37. //
  38. //    void push(T &item) {
  39. //        container_.push_back(item);
  40. //    }
  41.  
  42.     [[nodiscard]] size_t size() const {
  43.         return container_.size();
  44.     }
  45.  
  46.     bool empty() {
  47.         return container_.empty();
  48.     }
  49.  
  50. //    bool operator!=(const Queue &second) {
  51. //        return this->container_ != second.container_;
  52. //    }
  53. //
  54. //    bool operator==(const Queue<T, Container> &second) {
  55. //        return this->container_ == second.container_;
  56. //    }
  57. };
  58.  
  59. template<typename T1, typename T2, typename Container1 = std::deque<T1>,
  60.         typename Container2 = std::deque<T2>>
  61. bool operator!=(const Queue<T1, Container1> &first, const Queue<T2, Container2> &second) {
  62.     return first.getter() != second.getter();
  63. }
  64.  
  65. template<typename T1, typename T2, typename Container1 = std::deque<T1>,
  66.         typename Container2 = std::deque<T2>>
  67. bool operator==(const Queue<T1, Container1> &first, const Queue<T2, Container2> &second) {
  68.     return first.getter() == second.getter();
  69. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement