我正在学习编写代码并找到有趣的任务,但我不知道从哪里开始解决它。所以我有一个标题和评论文件需要放在正确的标题下。所以输入的第一行包含一个数字N,它决定了标题的数量。每行以唯一的文章ID(整数)开头,后面跟着引号中的标题。没有更多的标题后,给出评论。开始时有标题ID和评论(一个词),但是对于相同的ID可能会重复评论。所以这里是一个文件的结构:C++从文件中读取并输出排序的内容
<N>
<ID1> "<Title1>"
...
<IDN> "<TitleN>"
<ID1> <Comment1>
...
<IDK> <CommentK>
现在在输出文件中,每个标题都有两行 - 第一个是标题,第二个是注释。标题必须按升序排列。和评论应该是相反的顺序(在开始最新评论)的输出文件的结构:
<Title1>
<Comment11> ... < CommentK1>
...
<TitleN>
<Comment1N> ... < CommentLN>
例子:
input:
3
1 "This is some title"
3 "Another title"
2 "And one more"
1 COmment
1 Another
3 Great
2 Awesome
3 Lucky
2 Stanley
output
This is some title
Another COmment
And one more
Stanley Awesome
Another Title
Lucky Great
我现在不从哪里开始。我应该使用数组将数据保存在内存中,然后尝试以正确的模式对其进行排序?或者将文本文件加载到数据结构中更好一些;在这种情况下是一个链表?也许有人可以指导我在正确的方向如何完成这项任务。 (我不要求为我编码,只是引导我或给一些算法,这将不胜感激)。谢谢!
也许['std :: multimap'](http://en.cppreference.com/w/cpp/container/multimap)会有用。它允许每个键有多个值;使用等效键的值将以插入顺序存储。 –