【发布时间】:2013-03-03 08:41:25
【问题描述】:
我必须编写一个程序来接收多行输入,然后根据给定的几个命令行参数对它们进行排序。行可以是可变长度的,行上的每个项目用逗号分隔,如下所示:
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 到 1 的任意数量,并且排序依据的参数数量也可以是可变的。
【问题讨论】:
-
可行,只需要提供写比较功能即可。能否提供一些源代码?
-
您如何按第一列和第四列对
{a,g,h,8,6}和{a,g,h,8,5}进行排序?{a,g,h,8,6}和{a,g,h}怎么样? -
@Johnsyweb 你问我还是 OP?如果我理解正确,他想要行,使用第一列作为第一个键,然后在第一列中的值相同的情况下按第四列作为第二列排序。如果你使用正确的数据结构并写一个
operator<,这并不难,即使列数是可变的。 -
我在问@QuinnMillir。
-
@Stephen Lin 我会的,但是我的文件服务器今天宕机了,我丢失了当前的工作。