Som soreno skriver sorterer man ikke en map. map bruges til hurtigt at slå data op ud fra en nøgle, og er sædvanligvis implementeret som en træstruktur. Men hvis du ønsker at sortere for at få ud i en bestemt rækkefølge, så smid elementerne over en en vector eller deqeue, og så sorter den.
Alternativt kan du køre med to maps, en map<string, int> og en map<int,string>. Så vil du få "sorteret" nogenlunde som du forventer (nogenlunde på grund af forskellen mellem ækvivalens og identitet). Men så må du altså også holde styr på to datastrukturer undervejs.
Det kunne måske være interessant at få en beskrivelse af hvad du gerne vil opnå? Så kan det være vi kan komme med en bedre løsning.
Jeg har indlæst en fil, og mappet alle ordene et efter et. Ordene er mappet med deres tilhørende hyppighed. Jeg skal nu have disse ord skrevet ud i sorteret rækkefølge. Sorteret efter faldende hyppighed.
Jeg kan godt finde ud af skrive dem ud, men det bliver i alfabetisk rækkefølge, da key er ordet, og value er antal af forekomster.
Skriver hos mig: Words sorted on frequency: Freq: 5 Word: er Freq: 3 Word: der Freq: 2 Word: tekst Freq: 2 Word: som Freq: 2 Word: ord Freq: 2 Word: ikke Freq: 2 Word: andre Freq: 1 Word: tµlles Freq: 1 Word: til Freq: 1 Word: tegn Freq: 1 Word: sorteres Freq: 1 Word: skal Freq: 1 Word: pÕ Freq: 1 Word: punktum Freq: 1 Word: ordhyppighed Freq: 1 Word: og Freq: 1 Word: nogle Freq: 1 Word: lµse Freq: 1 Word: lowcase Freq: 1 Word: lowcase Freq: 1 Word: konverteres Freq: 1 Word: ingen Freq: 1 Word: i Freq: 1 Word: hvilket Freq: 1 Word: g°r Freq: 1 Word: gentagelser Freq: 1 Word: fra Freq: 1 Word: en Freq: 1 Word: dette Freq: 1 Word: desuden Freq: 1 Word: derfor Freq: 1 Word: denne Freq: 1 Word: den Freq: 1 Word: belastende Freq: 1 Word: at Freq: 1 Word: alle
Source er denne tekst: Dette er en tekst som der skal tælles ordhyppighed på Der er nogle ord som er gentagelser andre er ikke Punktum og andre tegn sorteres ikke fra derfor er der ingen i denne tekst hvilket gør den belastende at læse Desuden konverteres alle ord til lowcase
Jeg selv lavet en løsning hvor jeg indlæse mappen i en multimap. multimappet er oprettet med map<int, string>, så får jeg sorteret efter int værdien, som jeg har ønsket. noget nemmere. fylder 4 linier kode.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.