我想用指向用户定义的结构体,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文件,所以我不完全确定我是否以一种合理的方式进行操作 –