Я пытаюсь реализовать круговой буфер для задания. Чтобы сэкономить время, я хочу использовать двухстороннюю очередь внутри моего класса буфера переупорядочивания. Вот моя первая попытка написать класс, содержащий двухстороннюю очередь.
#ifndef ROB_H_
#define ROB_H_
#include <deque>
#include <cstdio>
using namespace std;
class ReorderBuffer{
public:
ReorderBuffer (int size);
void doStuff();
std::deque<int> buffer;
};
ReorderBuffer::ReorderBuffer (int size){
std::deque<int> buffer(size);
}
void ReorderBuffer::doStuff(){
std::deque<int> buffer(4);
buffer.push_back(5);
buffer.push_front(2);
buffer.push_back(3);
buffer.push_back(4);
printf("%d %d\n",buffer.at(0),buffer.pop_front());
}
#endif
В основном я создаю буфер переупорядочивания размером 4 и вызываю doStuff(). Когда я пытаюсь скомпилировать, он говорит о недопустимом использовании выражения void. Я сузил ошибку до моего вызова buffer.pop_front(). Почему он жалуется и как лучше всего поместить deque в мой класс? Спасибо!