Ich lerne zu programmieren und gefunden interessante Aufgabe, aber ich weiß nicht, wo ich anfangen soll es zu lösen. Also habe ich eine Datei mit einigen Titeln und Kommentaren, die unter dem richtigen Titel stehen müssen. So enthält die erste Zeile der Eingabe eine Zahl N, die die Anzahl der Titel bestimmt. Jede Zeile beginnt mit einer eindeutigen Artikel-ID (Ganzzahl), gefolgt vom Titel in Anführungszeichen. Nachdem es keine Titel mehr gibt, werden Kommentare gegeben. Am Anfang gibt es Titel-ID und Kommentar (ein Wort), aber Kommentare können für die gleiche ID wiederholen. so ist hier eine Struktur einer Datei:C++ aus einer Datei lesen und sortieren sortierten Inhalt
<N>
<ID1> "<Title1>"
...
<IDN> "<TitleN>"
<ID1> <Comment1>
...
<IDK> <CommentK>
nun in der Ausgabedatei jeder Titel zwei Zeilen hat - zuerst für den Titel und zweite für Kommentare. Titel müssen in aufsteigender Reihenfolge sein. Und Kommentare in umgekehrter Reihenfolge (neueste Kommentare am Anfang) Struktur der Ausgabedatei sein sollten:
<Title1>
<Comment11> ... < CommentK1>
...
<TitleN>
<Comment1N> ... < CommentLN>
Beispiel:
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
ich jetzt nicht, wo beginnen .. Soll ich Arrays verwenden, um Speichern Sie die Daten im Speicher und versuchen Sie dann, sie im richtigen Muster zu sortieren oder laden Sie die Textdatei in eine Datenstruktur. In diesem Fall eine verkettete Liste? Vielleicht kann mich jemand in die richtige Richtung führen, um diese Aufgabe zu erfüllen. (Ich bitte nicht, es für mich zu kodieren, führe mich einfach oder gebe einen Algorithmus, es wäre sehr geschätzt). Vielen Dank!
Vielleicht wäre ['std :: multimap'] (http://en.cppreference.com/w/cpp/container/multimap) von Nutzen. Es erlaubt mehrere Werte pro Schlüssel; Werte mit äquivalenten Schlüsseln werden in Anzeigenreihenfolge gespeichert. –