我有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;
我该如何解决这个问题?