参数值不能用作常量c ++

时间:2017-11-28 08:59:33

标签: c++ parameters int mergesort

void merge(vector<Flight>& data, int low, int high, int mid, string criteria)
{
int i, j, k, temp[high - low + 1];
...

出现的错误是&#34;参数值#34;高&#34; (在第100行声明)不能用作常数&#34;。我还没有在网上找到这个问题的合适答案。

1 个答案:

答案 0 :(得分:1)

high - low + 1需要是C ++中的编译时可评估常量表达式。 (C ++不支持可变长度数组。)

而且不是,所以编译器会发出诊断信息。

简单的解决方案是使用std::vector<int>作为temp的类型。