4
我試圖爲一個賦值實現一個循環緩衝區。爲了節省時間,我想在重排序緩衝區類中使用雙端隊列。這是我第一次嘗試寫一個包含deque的類。使用deque在C++中實現循環緩衝區
#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的最佳方式是什麼?謝謝!
謝謝!這正是我需要知道的。早應該看到它。 – user2921464