#include #include class monque_inc{ //compare function:from head to rear template static std::vector<_T> ins(_T x, std::deque<_T>&que, bool (*comp)(_U, _U)) { std::vector<_T> vec; while (!((*comp)(que.back(), x))) vec.push_back(que.back()), que.pop_back(); que.push_back(x); return vec; } //compare function:from head to rear template static void ins(_T x, std::deque<_T>& que, bool (*comp)(_U, _U), std::vector<_T>& vec){ while (!((*comp)(que.back(), x))) vec.push_back(que.back()), que.pop_back(); que.push_back(x); } template static std::vector<_T> fiton(int siz, std::deque<_T>& que) { std::vector<_T> vec; while (siz > que.size()) vec.push_back(que.front()), que.pop_front(); return vec; } template static void fiton(int siz, std::deque<_T>& que, std::vector<_T>& vec) { while (siz > que.size()) vec.push_back(que.front()), que.pop_front(); } };