我遇到了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++ 不允许使用实际数据类型(float
、double
等)作为下标运算符来声明数组的大小或进行访问。以下是一个错误:
int ArraySize[10.0];
因此如下:
ArraySize[4.0];
您必须传递整数类型(int
、long
、char
、bool
、unsigned
等)来指定大小并访问元素。如果变量是实数类型,您可以将其类型转换为 int (或者,更好的是 size_t
)
float nIndex = 5.0;
ArraySize[(size_t)nIndex];
如果您有一个类,那么您可以使用您喜欢的任何类型重载下标运算符!
关于c++ - 在 C++ 中对二维数组中的 float 进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14784947/