按多列对C++列表进行排序
Sorting a C++ list by multiple columns
>我有一个包含 4 列数据的 C++ 列表对象,其中每列由空格分隔。它们分别是字符串、整数、整数和双精度类型。如何按第一列和第四列对列表进行排序?
使用谓
词函数,该函数通过比较对象 1 和对象 2 来解析数据并返回小于的结果。
struct sorter1432
{
bool operator()(const Data &a, const Data &b)
{
if(a.first != b.first) return a.first < b.first // string comparision
if(a.fourth != b.fourth) return a.fourth < b.fourth // double comparision
if(a.third != b.third) return a.third < b.third // int comparision
if(a.second != b.second) return a.second < b.second // int comparision
return false; // Equal
}
};
...
lst.sort(sorter1432);
关于您解析(可能使用字符串流)并将其存储在数据成员中的第一、第二、第三和第四个成员,因为每次在帮助程序函数中进行解析可能会很昂贵。
制作数据结构,然后根据Mohits的答案进行排序。它可能看起来像
struct s_data{
string str;
int a;
int b;
double c;
};
现在,您可以使用函子进行排序。
输入使用字符串流(将使生活更轻松)。
相关文章:
- C 中的排序列表
- 使用霍尔分区方案的快速排序算法返回原始未排序列表
- 带有额外参数的排序列表以进行比较功能
- 算法,用于查找获取排序列表所需的最小移动元素到结束步骤
- 迭代排序列表并计算不同的数字
- 维护多集中数字的排序列表和另一个集合中的累积总和
- 超过合并 k 排序列表的时间限制(leetcode)
- 正在检查排序列表中是否有一个范围内的数字
- O(N) 查找,但在排序列表上使用 upper_bound 时进行 O(log(N)) 比较
- 如何在只更改一个元素的情况下在排序列表中进行快速排序
- 返回指向排序列表的指针;C++中的链表
- 除了显示平均,最高和最低温度之外,有没有办法打印出整个排序列表
- 整数排序列表..TMP
- c++排序:具有相同数组值的排序列表
- 复制C++中未排序列表的构造函数
- 如何将元素添加到排序列表中..?(C++)
- 三维对象的Z排序列表
- 在我的排序列表中插入项目时出现问题
- 将节点插入到不带头指针的排序列表中
- 使用"pop_front"从排序列表中删除元素会导致崩溃