Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <algorithm>
- #include <deque>
- #include <iostream>
- #include <vector>
- template<typename T, typename Container = std::deque<T>>
- class Queue {
- private:
- Container container_;
- public:
- Queue() = default;
- [[nodiscard]] Container getter() const {
- return container_;
- }
- [[nodiscard]] T front() const {
- return container_.front();
- }
- T &front() {
- return container_.front();
- }
- void pop() {
- container_.pop_front();
- }
- void push(T &&item) {
- container_.push_back(item);
- }
- void push(T &item) {
- container_.push_back(std::move(item));
- }
- //
- // void push(T &item) {
- // container_.push_back(item);
- // }
- [[nodiscard]] size_t size() const {
- return container_.size();
- }
- bool empty() {
- return container_.empty();
- }
- // bool operator!=(const Queue &second) {
- // return this->container_ != second.container_;
- // }
- //
- // bool operator==(const Queue<T, Container> &second) {
- // return this->container_ == second.container_;
- // }
- };
- template<typename T1, typename T2, typename Container1 = std::deque<T1>,
- typename Container2 = std::deque<T2>>
- bool operator!=(const Queue<T1, Container1> &first, const Queue<T2, Container2> &second) {
- return first.getter() != second.getter();
- }
- template<typename T1, typename T2, typename Container1 = std::deque<T1>,
- typename Container2 = std::deque<T2>>
- bool operator==(const Queue<T1, Container1> &first, const Queue<T2, Container2> &second) {
- return first.getter() == second.getter();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement