优先队列编译错误
Priority Queue Compilation Error
我正在尝试编译下面的代码,但编译器给出了错误
Struct.h:38:9: error: ‘priority_queue’ in namespace ‘std’ does not name a type
多次搜索都没有找到答案,所以我希望你们能帮忙。该代码部分基于 c++ 参考站点上提供的示例代码。
struct aimedShot;
union moveFunc;
struct timeCommand;
struct aimedShot
{
void (*move) (Dot*, SDL_Event&, double x, double y);
double x;
double y;
};
//Holds the kind of function used
union moveFunc
{
void (*notAimed) (Dot*);
aimedShot aimed;
};
//Dot to be operated on and the appropriate operator with time
struct timeCommand
{
Dot* target;
moveFunc command;
int time;
bool type; //True indicates aimed (integer inputs), False indicates unaimed
};
class CompareCommand
{
public:
bool operator()(timeCommand& c1, timeCommand& c2) //Return true if c1 comes first
{
return (c1.time < c2.time);
}
};
typedef std::priority_queue< timeCommand, std::vector<timeCommand>, CompareCommand> commandTimeline;
为了能够使用 std::priority_queue<>
class 模板,您需要 #include <queue>
标准 header。
我正在尝试编译下面的代码,但编译器给出了错误
Struct.h:38:9: error: ‘priority_queue’ in namespace ‘std’ does not name a type
多次搜索都没有找到答案,所以我希望你们能帮忙。该代码部分基于 c++ 参考站点上提供的示例代码。
struct aimedShot;
union moveFunc;
struct timeCommand;
struct aimedShot
{
void (*move) (Dot*, SDL_Event&, double x, double y);
double x;
double y;
};
//Holds the kind of function used
union moveFunc
{
void (*notAimed) (Dot*);
aimedShot aimed;
};
//Dot to be operated on and the appropriate operator with time
struct timeCommand
{
Dot* target;
moveFunc command;
int time;
bool type; //True indicates aimed (integer inputs), False indicates unaimed
};
class CompareCommand
{
public:
bool operator()(timeCommand& c1, timeCommand& c2) //Return true if c1 comes first
{
return (c1.time < c2.time);
}
};
typedef std::priority_queue< timeCommand, std::vector<timeCommand>, CompareCommand> commandTimeline;
为了能够使用 std::priority_queue<>
class 模板,您需要 #include <queue>
标准 header。