gpt4 book ai didi

c++ - 排序结构(ures)

转载 作者:行者123 更新时间:2023-11-28 00:37:25 26 4
gpt4 key购买 nike

如果我定义一个结构

struct dat{
int a;
char b;
};

然后我声明一个该结构的数组,即

dat array[10];

然后我对数据数组array[i].a进行排序,即

std::sort((array.a),(array.a+10);

这行得通吗?

假设排序后,array[5].a 转到 array[2].a,array[5].b 是否也转到 array[2].b,如果不是如何使用 std 库函数执行此操作排序。

最佳答案

要使用 std::sort() 算法对您的数据结构进行排序,您可以提供一个比较器函数作为其第三个参数。

例如,按dat.a的值排序:

bool IntSorter (const dat& dat1, const dat& dat2) { return dat1.a < dat2.a; }

然后,你像这样调用排序:

std::sort(array, array + 10, IntSorter);

另外,您可以重构您的代码以避免魔数(Magic Number) 10,也可以避免在调用 std::sort 时引用倒数最后一个元素时重复它()

关于c++ - 排序结构(ures),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20358998/

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