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;。我还没有在网上找到这个问题的合适答案。
答案 0 :(得分:1)
high - low + 1
需要是C ++中的编译时可评估常量表达式。 (C ++不支持可变长度数组。)
而且不是,所以编译器会发出诊断信息。
简单的解决方案是使用std::vector<int>
作为temp
的类型。