用c ++对类数组进行排序

时间:2014-11-03 20:41:12

标签: c++ function class sorting

我有2个班级:

class explanations
{
    public:
        int n_size = 0;
        factor reason[20];
        int repetitions = 0;
        double confidence_ratio = 0;
};


class explanations_list
{
    public:
        explanations _list [1000];
        int explanations_counter = 0;
        int times_happened = 0;
};

我正在创建类explanations_list的实例,我想创建一个函数,按_list[1000]explanations类型的数组confidence_ratio进行排序(这是包含在类explanations)中,(在这种情况下使用bubble-sort),所以它是double。 为此,我尝试添加一个函数,因此类explanation_list变为:

class explanations_list
{
    public:
        explanations _list [1000];
        int explanations_counter = 0;
        int times_happened = 0;

        void order_by_ratio()
        {
            explanations temp;
            for (int i = 0; i < 1000-2; i ++)
            {
                for (int j = 0; j < 1000-1; j++)
                {
                    if (_list[j].confidence_ratio > _list[j+1].confidence_ratio)
                    {
                        temp = _list[j];
                        _list[j] = _list[j+1];
                        _list[j+1] = temp;
                    }
                }
            }
        }
};

但是如果我创建一个实例explanations_list instance1;

然后运行函数instance1.order_by_ratio();

它重置所有值,这个数据结构有效,它显示了我需要的所有信息,但如果我调用这个函数,然后输出值,它们都变为0;

我该如何解决这个问题?

0 个答案:

没有答案