C++ 语法错误

标签 c++ function

我收到这个错误:

prog.cpp:1:5: error: expected unqualified-id before ‘[’ token

形成这段代码:

int [] quick_srt(int array[], int low, int n){

请问这是问题所在吗?

编辑

int [] quick_srt(int array[], int low, int n){
int lo = low;
int hi = n;
comp++;
if (lo >= n){ // lo is greater then or equal to n
    return array;
}
int mid = array[(lo + hi) / 2];  //Using mid as pivot
comp++;
while (lo < hi){ //lo is less then hi

    comp++;
    while (lo < hi && array[lo] < mid){ //lo less than hi AND array[lo] less than mid
        lo++;
        comp++;
    }

    comp++;
    while (lo < hi && array[hi] > mid) {//lo less than hi AND array[lo] greater than mid
        hi--;
        comp++;
    }

    comp++; //for if
    comp++; //for else
    if(array[lo] == array[hi]){
    break; //for duplicate items
    }
    else if (lo < hi) { // less than
        int T = array[lo];
        array[lo] = array[hi];
        array[hi] = T;
        swaps++;
    }
    comp++;
}
comp++;
if (hi < lo) { //hi is less than lo
    int T = hi;
    hi = lo;
    lo = T;
}
quick_srt(array, low, lo); //recrusie call
quick_srt(array, lo == low ? lo+1 : lo, n); //re-call, if lo = low, increment lo else pass lo and n
return array;
  }

最佳答案

您不能从函数返回数组。参数列表中的 int array[] 只是 int *array 的语法糖,没有类似的返回值。如果你想返回一个指针,你需要明确地这样做:

int *quick_srt(int array[], int low, int n);

或者,等价地:

int *quick_srt(int *array, int low, int n);

关于C++ 语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19016534/

相关文章:

c++ - 我可以避免 Matrix 类的迭代器中的循环依赖吗?

c++ - 如何比 SetPixel() 更快地直接从原始 RGB 值数组在屏幕上显示像素?

c++ - 你能解释一下 extern 的意思和其他一些东西吗?

c++ - C++ 类中的许多成员函数对性能有影响吗?

c++ - 获取 DLL 中定义的函数列表

python - 模块代码运行不正确

c++ - 子解析器属性

c# - C# 什么时候释放 C++ DLL?

javascript - 通过 jQuery 执行函数

C++ 打印行号以及二维数组的最大行数