我声明了一个具有以下结构的全局结构:
typedef struct {
int value;
int index;
}element;
我有一个带有k
排序队列的程序,我从每个程序中输入heapSort
(我正在使用数组)。我使用struct中的索引值来跟踪我想要从堆中弹出的元素。现在,我想测试不同队列数量的程序,所以我这样做了:
for (int i = 10;i <= 50;i += 10) {
const int k = i;
element a[k];
}
但是我收到了一个错误:
表达式必须具有常量值
我有什么方法可以&#34;欺骗&#34;是什么?
答案 0 :(得分:1)
您声明了array
,无法更改数组的大小。要解决此问题,最好使用vector
。
试试这个:
#include <vector>
vector <element> a(50);
要从vector
中弹出元素,请尝试以下操作:
a.erase(a.begin()+index_from_zero);