【问题标题】:Passing Array to Class Method for Selection Sort将数组传递给类方法以进行选择排序
【发布时间】:2021-03-07 18:00:45
【问题描述】:

我应该用它来对数组进行排序。

template <class T>
class Selection
{

private:
    T* ptr;

public:
    Selection(T len)
    {
        cout << "Allocating Selection ptr\n";

        //allocate memory for the pointer
        ptr = new T;
        *ptr = len;
    };

    T getobj(void)
    {
        return *ptr;
    };

    static SelectionSort(T arr[], int n)
    {
    //pos_min is short for position of min
        T pos_min, temp;

        for (int i = 0, j; i < n - 1; i++)
        {
            pos_min = i;//set pos_min to the current index of array

            for (j = i + 1; j < n; j++)
            {
                if (arr[j] < arr[pos_min])
                    pos_min = j;
            }
            //pos_min keeps track of the index that min is in

            //if pos_min no longer equals i than a smaller value must have been found
            if (pos_min != i)
            {
                temp = arr[i];
                arr[i] = arr[pos_min];
                arr[pos_min] = temp;
            }
        }
    };
};

在 main 中创建了数组:

int arr1[10] = { 1, 2, 7, 4, 5 };
int m = sizeof(arr1) / sizeof(arr1[0])

不知道如何将数组传递给类 Selection 中的 SelectionSort 函数(它是无效的,但我正在尝试使用静态的东西,因为互联网。到目前为止,我尝试过的所有事情都给我留下了大约 10-13 个致命错误) 我都不懂。

在类选择中将 arr1 传递给 SelectionSort 的语法是什么?

【问题讨论】:

    标签: c++ arrays class sorting


    【解决方案1】:

    首先,尝试将 SelectionSort 函数中 pos_min 的类型从 T 更改为 int 并添加一个 void 作为该函数的返回值。

    然后,尝试创建一个类型名称在尖括号中的 Selection 类的对象,初始化一个数组并将其放入类方法中。我的意思是尝试这样做:

    Selection<double> sel(5);
    double ar[] = {5, 4, 3, 2, 1};
    sel.SelectionSort(ar, 5);
    

    【讨论】:

    • 做到了。现在看到这个后,我明白了我的朋友所说的使用对象调用函数的意思。我真的不明白为什么,但至少它可以工作(我做了一个简单的读取循环来计算数组并​​且它实际上是排序的)非常感谢@deepv2 我现在只需要对其他排序函数重复这个过程。
    • 没关系,我的阅读障碍让我认为它已经被分类了。但是我会弄清楚的,至少现在我知道调用方法 func 的语法我想我只需要弄乱一些与实际排序函数相关的指针内容
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-22
    • 2016-04-24
    • 1970-01-01
    • 2010-10-23
    • 2012-11-13
    • 1970-01-01
    相关资源
    最近更新 更多