gpt4 book ai didi

C++ 类 & .H 排序

转载 作者:行者123 更新时间:2023-11-28 03:30:04 25 4
gpt4 key购买 nike

专家们晚上好!!

我有一个记录以下内容的数组对象..

这是在record.h

Class Record
{
private:
string name;
int data;
float valueData;
public:
bool operator<(const Record&) const;
}

构造函数创建于record.cpp

record.cpp 我加了这个

bool Record::operator<(const Record& rhs) const
{
return valueData < rhs.valueData;
}

在 main.cpp 中我创建了大小为 10 的记录数组

#include "record.h"

Record rec[10];

我做了

sort(&rec[0], &rec[2]);

但似乎没有任何变化或排序..我有 3 个元素,rec[0]、rec[1]、rec[2],我想对它们进行排序,但它们属于另一个头文件上面描述的 record.h 及其 record.cpp。

原始问题接下来是我给对象记录了几个值

现在 rec 有 3 个索引

rec[0]
name = "jack1"
data = 1
valueData = 20

rec[1]
name = "jack2"
data = 2
valueData = 15

rec[2]
name = "jack3"
data = 3
valueData = 25

我想要实现的是做一个排序,可以通过 valueData 最高的升序形式重新排列这个数组,所以......它将是

rec[2] 然后 rec[0] 然后 rec[1] ..

但我想按类数组对象排序。并将值重新排列在一起,我该如何实现。

3 值是私有(private)的,所以我不确定我在哪里创建排序函数,在 main.cpp 或在 record.cpp ,接下来是我如何排序它以便它可以以下面的方式输出..

-- Highest to lowest --
1) Name: Jack3, Data = 3, Value =25
2) Name: Jack1 , Data =1 , Value = 20
3) Name: Jack2, Data = 2, Value = 15

感谢所有帮助和指导!!

最佳答案

改为这样做:

sort(&rec[0], &rec[3]);

您只对前两个元素进行排序,因为按照惯例由迭代器对定义的范围内的第二个迭代器总是指向您要操作的范围的末尾过去。 p>

关于C++ 类 & .H 排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12825453/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com