Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/129.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 数组声明中出错:表达式必须具有常量值_C++_Visual C++ - Fatal编程技术网

C++ 数组声明中出错:表达式必须具有常量值

C++ 数组声明中出错:表达式必须具有常量值,c++,visual-c++,C++,Visual C++,我声明了具有以下结构的全局结构: typedef struct { int value; int index; }element; 我有一个带有k排序队列的程序,我将每个队列的最小值放入一个heapSort(我使用的是一个数组)。我使用struct中的索引值来跟踪要从堆中弹出的元素。现在,我想针对不同数量的队列测试该程序,所以我做了以下工作: for (int i = 10;i <= 50;i += 10) { const int k = i; eleme

我声明了具有以下结构的全局结构:

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];
}

对于(int i=10;i您声明了一个
数组
,数组的大小无法更改。要解决此问题,最好使用
向量

试试这个:

#include <vector>
vector <element> a(50);

标准C++没有可变长度数组(C有)。请改用std::vector。您可以使用
std::vector a(k)
std::vector a(i);
并将
k
全部丢弃。仅供参考,如果出于任何目的允许,则
适配器中的堆操作可以为您节省更多的工作。请参阅修复它。谢谢!
a.erase(a.begin()+index_from_zero);