我想用指向用戶定義的結構體,Tile的指針來初始化雙端隊列,以消除不必要的複製。deque.push_front()給出錯誤「表達式必須具有類類型」
我的代碼如下所示:
Tile *start = new Tile(0,0,0, 'q', nullptr);
deque<Tile*> search();
search.push_front(start);
上面的代碼位於main.cpp中。
磁磚結構是這樣的,幷包含在hunt.h:
struct Tile
{
int row; int col; int farm;
char tile;
Tile * added_me;
Tile(int f, int r, int c, char t, Tile * a) :
farm(f), row(r), col(c), tile(t), added_me(a){}
};
我的程序的佈局如下:
的main.cpp:包括文件 「io.h」
io.h:包括 「hunt.h」,各種標準庫
hunt.h:包括載體,雙端隊列,瓷磚結構
但是,當我嘗試push_front(start)時,我在main.cpp中發生錯誤:表達式必須具有類類型。「我不確定在我的#includes中是否存在可能的錯誤導致此錯誤,所以請讓我知道如果是這樣的話。否則,我不完全知道如何解決這個錯誤。
在此先感謝!
感謝您的快速回復!我的#包括是否有意義,或者有什麼你會改變的?我最近開始不得不製作我自己的.h文件,所以我不完全確定我是否以一種合理的方式進行操作 –