c++ - 在 C++ 中对二维数组中的 float 进行排序

标签 c++ c sorting

我遇到了std:sort但它对我来说不起作用。我有一个二维 float 组,其中我只需要对一列进行排序。任何 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];

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

关于c++ - 在 C++ 中对二维数组中的 float 进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14784947/

相关文章:

c++ - mkdir in/tmp 不工作 : "Permission Denied"

c - Linux环境变量使用非全路径

c - 在没有任何临时变量的情况下在 O(n) 中排序

c++ - 当排序标准需要额外的变量时,如何对列表进行排序? C++

c++ - Linux系统优雅关闭TCP Server

c++ - 声明和修改结构体静态数组-CPP

c++ - 是否有任何用于检查格式的 C 和 C++ 的 lint 工具?

c - Visual Studio 2012 C 访问代码错误

php - 尝试在 php 中对 mysql 表中的数据表进行排序

c++ - 在C++中设置迭代器