用C++对二维数组中的浮点数进行排序

Sort floating point numbers in a 2D array in C++

本文关键字:浮点数 排序 C++ 二维数组      更新时间:2023-10-16

我遇到了std:sort,但它在我的情况下不起作用。我有一个2D浮点数组,其中我只需要对一列进行排序。FLOATS的任何排序算法都可以。不过我当时在考虑合并排序。任何人

void selectionSort(float x[], int n) {
float curr = 0, min = 0, i = 0, temp;
for (curr = 0; curr < n-1; curr++) {
    min = curr;  // assume this is smallest
    //--- Look over remaining elements to find smallest.
    for (i = curr+1; i < n; i++) {
        if (x[i] < x[min]) {
            //--- Remember index for latter swap.
            min = i;
        }
    }
    //--- Swap smallest remaining element
    temp = x[curr];
    x[curr] = x[min];
    x[min] = temp;
}}

VS 2010输出一个错误:下标不是积分类型

C/C++不允许实际数据类型(floatdouble等)作为下标运算符来声明数组的大小或进行访问。以下是一个错误:

int ArraySize[10.0];

因此,以下内容:

ArraySize[4.0];

必须传递一个整数类型(intlongcharboolunsigned等)来指定大小并访问元素。如果变量是实数类型,则可以将其类型转换为int(或者,更优选size_t

float nIndex = 5.0; 
ArraySize[(size_t)nIndex];

如果你有一个类,那么你可以用你喜欢的任何类型重载下标运算符!