结构数组的排序函数
Sort function for array of structures
我有一个名为rain的结构。它是这样定义的
struct Rain{
string month;
string year;
double rainfall;
}
我有一个这样的数组(rain[240]),我想使用排序算法进行排序。这是我尝试过的:
sort(rain.rainfall, rain.rainfall + 240);
但是我得到:
member reference base type 'Rainfall_data [240]' is not a structure or union
sort(rain.rainfall, rain.rainfall + 240);
~~~~^~~~~~~~~
我只是想知道是否有可能以这种方式使用排序算法,如果是这样的话,我做错了什么,它不工作?
谢谢你的帮助。
通常将函数嵌入到类/结构体中是最方便的:
struct Rain {
string month;
string year;
double rainfall;
bool operator < (const Rain& r1) const {
return (rainfall < r1.rainfall);
}
};
现在它们可以按照基本类型进行排序:
std::sort(rain, rain + 240);
您需要创建一个可以传递给sort
的比较函数,该函数知道如何比较两个不同的Rain
对象。
bool RainLess(const Rain &r1, const Rain &r2)
{
return r1.rainfall < r2.rainfall;
}
std::sort(rain, rain+240, RainLess);
相关文章:
- 是否有类似std::lower_bound的函数,而不需要排序/分区输入
- std::sort()函数无法对向量的一部分进行排序
- 使用自定义比较函数使用std::sort()对矢量字符串进行排序时出现问题
- 用于合并排序的合并函数
- 如何计算此排序函数的时间复杂度?
- 什么是自定义比较器以及如何在 C++ 的排序函数中使用它?
- 为什么用户定义的函数不按照给定的顺序对相同长度的元素进行排序?
- 自定义排序函数中的堆溢出
- 分段 排序函数实现中的错误
- 使用模板化分配器和对向量进行排序的函数
- 为什么我的函数接受"std::string"进行排序不会改变它?
- 对没有比较器或λ函数的向量进行排序?
- C++中的析构函数和构造函数排序
- 数组中的函数排序错误
- 如何命名比较谓词函数排序向量
- 按lexicographical_compare()函数排序
- 构造函数排序(全局作用域)问题
- 按接受c++中参数的函数排序
- 函数排序错误
- 根据不同函数排序的std::向量的交集