根据C++中的列对 CSV 文件进行排序
sorting a csv file according to column in C++
我被分配了一个任务,根据用户的输入对csv文件进行排序
数据如下所示:
California,USA,65,76,65,67
Paris,France,78,65,97,87
Tokyo,Japan,56,78,67,87
New York,USA,54,65,67,44,67
或者基本上列代表
City,Country,q1 average temperature, q2 average temperature, q3 , q4
我的任务是根据列对其进行排序:城市作为列 1,国家列为第 2 列,依此类推......取决于用户输入。
因此,如果用户输入1dec
则意味着它将按第一列排序(在本例中按字母顺序)并打印排序后的数据
对于上面的示例,它将打印为:
Tokyo,Japan,56,78,67,87
Paris,France,78,65,97,87
New York,USA,65,67,67,44,67
California,USA,65,76,65,67
用户还可以输入多个输入,例如2asc,3dec,4dec
这意味着,第 2 列将是第一个按升序排序的列,如果它们在该列中有类似的数据,则将使用第 3 列按降序显示它们,那么如果它仍然相同,则使用第 4 列。
对于上面的示例,如果使用2asc,3dec,4dec
调用,它将打印为:
Paris,France,78,65,97,87
Tokyo,Japan,56,78,67,87
California,USA,65,76,65,67
New York,USA,65,67,67,44,67
我的问题是,我应该如何处理这个问题?我应该使用哪种最佳数据结构?
附言。并不是真的要求代码示例,但我只是要求一些提示或者如果你会遇到这种问题的方法
这是一个你可以使用的方法,希望你觉得它很直观
- 读取数据并将其放入包含表示真实世界数据的对象(类)的未排序向量中。
- 解析用户输入以决定列和排序顺序
- 使用简单的排序算法(如选择排序)将数据添加到排序向量。
- 遍历排序后的向量并输出结果。
我的问题是,我应该如何处理这个问题?什么是最好的 我应该使用数据结构吗?
您应该使用几种数据结构,但是如果您使用向量来存储输入列表(如果它很大),则最好使用保留方法,以避免多次重新分配向量。
另一个有趣的点是以相反的顺序重复应用排序条件,以便您可以轻松地按照多个条件对输出进行排序。
如果你对性能有价值,你应该使用更复杂的方法。
相关文章:
- 按价格对文件中的产品进行排序
- 如何对文件中数组中的单个列进行冒泡排序?C++
- 使用C++对一个巨大文件中的文本行进行字典式外部排序
- 如何按升序对输入文件中的数字进行排序,并找到它们的范围和中值
- 如何在一个巨大的文本文件中对整数进行排序
- 在排序链表中插入结构并将其写入二进制文件
- 从文件中读取并将其内容放入对象数组中,然后对它们进行排序
- 对包含整数的文本文件进行排序时,必须逐行进行排序
- 在排序文本文件中实现二叉搜索?
- 如何从输入的文本文件中按姓氏字母顺序对图表进行排序?
- 按文件中列表中行的一部分排序
- C++ 从文件中获取数据时使用 strcpy 和 strcmp 按字母顺序对数组进行排序?
- 如何从文件中读取并按类别对它们进行排序
- 如何在大型文本文件中对数字进行排序
- C++ 从文件中读取字符,计算每个字符并进行排序
- 从文件中读取并按字母顺序排序
- 随机化超大文件内容排序的有效方法是什么?
- 为什么名称在我的数组中重复出现,以及如何使TXT文件排序
- c++二进制文件排序
- 合并两个文本文件排序