Я новичок в C++, и мой профессор попросил нас построить класс Deque и несколько других классов, таких как Stack и Queue.Как построить класс deque с функциями-членами в нем? C++
Ниже приведено то, что я сделал до сих пор.
Мой вопрос: Как построить/сделать функцию и заставить ее работать? Например, как именно вы могли бы сделать функцию push_front (int) здесь? (на самом деле не нужно использовать шаблон, используя int полностью.)
Только одного примера было бы достаточно для того, чтобы выяснить, что делать дальше.
Действительно ценят помощь.
#ifndef CLASSES_H
#define CLASSES_H
#include <vector>
#include <iostream>
class Deque{
public:
void push_front(int); //Insertion from left
void push_back(int x){m_Vector.push_back(x);};//Insertion from right
void pop_front();//Remove from left
void pop_back(){m_Vector.pop_back();};//Remove from right
int getL()const {return m_left;}
int getR()const {return m_right;}
protected:
//Protected Data members
int m_left;
int m_right;
unsigned int size;
unsigned int length;
vector<int> m_Vector;
//structure
};
// Deque member functions definitions
class Queue:private Deque{
public:
void insertL(int a){push_front(a);};
int removeR(){return pop_back();};
};
class Stack:private Deque{
public:
void push(int x){push_front(x);};
int pop(){return pop_front();};
bool full(){return m_left == m_right;}
protected:
using Deque::m_left;
using Deque::m_right;
};
#endif /* CLASSES_H */
UPDATE:
Я просто сделал небольшую функцию, как это,
void Deque::push_front(int x){
m_Vector.insert(m_Vector.begin(),x);
}
И я положил его сразу после класса Deque. Может ли кто-нибудь сказать мне, правильно ли я делаю это?
второй UPDATE:
Я получил pop_front сделано, как это.
void Deque::pop_front(){
m_Vector.front() = std::move(m_Vector.back());
m_Vector.pop_back();
}
Вам было поручено использовать 'vector' в качестве основного хранилища данных? –
Да Я узнал основную информацию об объекте в Google. –