C++ 应在#ifndef处出现标识符错误

C++ 应在#ifndef处出现标识符错误,c++,C++,这是我使用堆实现的优先级队列,但下面的代码中有一个错误。错误在#ifndef“HEAP_H”处显示“应为标识符” #包括“stdafx.h” #包括 使用名称空间std; #ifndef“HEAP_H” #定义“HEAP_H” 类堆{ 公众: Heap(); 堆(intc); 堆(常量int*优先级、常量int*元素、int s、int c); 堆(常量堆和Heap1,常量堆和Heap2,int c); ~Heap(); //访问者 bool empty()const{return hSize=

这是我使用堆实现的优先级队列,但下面的代码中有一个错误。错误在#ifndef“HEAP_H”处显示“应为标识符”

#包括“stdafx.h”
#包括
使用名称空间std;
#ifndef“HEAP_H”
#定义“HEAP_H”
类堆{
公众:
Heap();
堆(intc);
堆(常量int*优先级、常量int*元素、int s、int c);
堆(常量堆和Heap1,常量堆和Heap2,int c);
~Heap();
//访问者
bool empty()const{return hSize==0;};//True iff堆为空。
int size()常量{return hSize;};//堆的当前大小。
int capacity()常量{return hCapacity;};//当前容量。
int Peek min()常量{返回一个[0].element;}//Peek at minimum priority元素。
int Peek minpriority()常量{返回[0].priority;}//Peek处于最低优先级。
//修饰语
void insert(int元素,int优先级);//插入对。
int extractMin();//删除并返回优先级最高(最低)的元素。
私人:
类对{
公众:
int元素;
int优先级;
};
Pair*A;//包含堆内容的数组。
int hCapacity;//元素的最大数量(=A的大小)。
int hSize;//元素的当前数量。
//在[i]处添加叶后修复排序不变量。
无效滴流(int i);
//修复以索引i为根的子树的排序不变量,
//当一个[i]可能比它的一个孩子有更大的优先权时,
//但其子代的子树是堆。
无效滴流下降(int i);
//为整个数组内容建立排序不变量。
void heapify();/(与讲座中的“make_heap”相同。)
//有助于实现涓流向上和向下
无效掉期(int i、int j);
};
#恩迪夫
我的头文件名为heap.h,但在这段代码中,#ifndef“heap_h”处出现了一个“预期的标识符”错误

提前感谢。

宏是(不带引号的符号),而不是字符串:

#ifndef HEAP_H
#define HEAP_H
请注意缺少引号。

您可以使用
#ifdef
#ifndef
检查是否定义了某些内容。应该如此

#ifndef HEAP_H
#define HEAP_H

永远不要在头文件的全局范围内使用namespace指令添加
。曾经在您自己的小项目中,这可能不会导致可怕的问题,但在与他人合作时,这是一种非常糟糕的做法。感谢您的提示:)
#ifndef HEAP_H
#define HEAP_H