如何在vc6.0中对结构数组进行排序
how to sort a structure array in VC 6.0
问题来了。我已经定义了一个结构体:
typedef struct {
long t;
long M;
long double coeff;
} Info;
,我只能知道下面程序中结构体的个数,因此我写:
Info p = (Info) malloc (sizeof(Info) * sum);(其中sum为长整数)
,现在我想按照'coeff'升序对结构数组进行排序。
如何在vc++ 6.0中实现?
非常感谢!
你可以实现一个比较函数,然后调用std::sort。
bool comparator(const Info& p1, const Info& p2)
{
return p1.coeff < p2.coeff;
}
你也可以在你的结构定义中重载<
操作符,而不是编写一个独立的比较函数。
则调用std::sort
std::sort(A, A+sum, comparator);
假设A
是你的struct数组
使用合适的比较函子std::sort:
bool cmp(const Info& lhs, const Info& rhs)
{
return lhs.coeff < rhs.coeff;
}
然后#include <algorithm>
std::sort(p, p + sum, cmp);
假设p
是指向包含sum
Info
对象的数组的第一个元素的指针。
但是在c++中,您通常更喜欢std::vector
而不是动态分配的数组:
std::vector<Info> v(sum); // contains sum default constructed Infos
然后std::sort(v.begin(), v.end(), cmp);
您也不需要typedef
语法:
struct Info {
long t;
long M;
long double coeff;
};
相关文章:
- 从函数中全局删除并重新实例化数组结构,而无需在编译时知道数组的大小
- 如何使用函数的输出初始化 const 数组结构字段?
- 传递数组结构、ofstream 和 interger 以运行
- 从文本文件中读取并输入到数组结构中,然后显示读取的数据C++
- 将文本文件读取到数组结构中
- C/C++中数组结构和数组结构的通用接口
- C++ MDC final-在字符类型的数组结构中按字母顺序对记录中的名称进行排序
- C++ 使用数组结构创建平衡的二叉搜索树
- C++:释放动态数组(结构成员)和指向此结构的指针的方法
- 使用 vector 在 c++ 中声明 3D 数组结构
- 数组结构无法正确打印
- 如何在C++中访问数组结构内部的数组结构
- CIN进入数组结构似乎什么也没输入
- ifstream将数组结构到txt文件中,然后尽可能将其提取为数组
- wlanapi-将WlanFreeMemory释放其WLAN_INTERFACE_INFO数组结构
- 显示数组结构 c++
- C++ 使用函数访问数组结构的方法是什么?
- 将庞大的数组结构复制到 GPU
- 如何封送包含字符矩阵的数组结构
- C++多维数组结构的对齐