我必须编写一个接受多行输入的程序,然后根据给定的几个命令行参数对它们进行排序。该行可以是可变长度的,行上的每个项都用逗号分隔,如下所示:
a,b,c,12,3
d,e,f,4,56
a,g,h,8,5
程序要做的是根据给定的参数对某些列的输入进行排序。这很简单,但困难的是我还必须能够对多个参数进行排序。
例如,命令行参数1,4(都是升序)将输出:a,g,h,8,5
a,b,c,12,3
d,e,f,4,56
所以它根据第一列,然后第四列进行排序。我不确定如何排序,然后只使用下一个参数对冲突元素进行排序而不使用整个列。我目前正在将输入存储在矢量矢量中。
作为旁注,我已经阅读了一些类似的问题,但是所有这些问题都只有一定数量的东西需要排序。对于这个程序,每行的项目数可以是1以上,并且排序的参数数量也可以变化。
答案 0 :(得分:1)
首先,使用std :: sort(),它首先使用迭代器,最后作为输入。 然后,使用递归。递归是解决方案的关键。
对于每个参数,即排序标准C_i,您有一个递归级别R_i。在每个递归级别R_i中,您有两个步骤:
就是这样!
讨论这个解决方案: