IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: nečastější prvek

V předchozím kvízu, Online test znalostí C++, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
petr.dar
Člen
Avatar
petr.dar:2.2.2017 20:05

Zdař lidi,
Nemohu v knihovně najít algoritmus, který mi vyhledá prvek, který se mi v kontejneru vyskytuje nejčastěji, Existuje taková funkce?

 
Odpovědět
2.2.2017 20:05
Avatar
Petr
Člen
Avatar
Petr:3.2.2017 0:02

Ahoj,

myslim ze neexistuje, ale tak napsat to neni slozite. Udelas si pole, kde kazdy prvek bude drzet pocet vyskytu prvku v kontejneru, pak prolezes kontejner, spocitas a pak prolezes znovu pole a podivas se co se vyskytlo nejcasteji. Pokud kontejner bude obsahovat nejaky slozitejsi datovy typ tak misto pole pouzij hash mapu a u kazdeho prvku spocitej hash a ukladej pocet vyskytu pod hashem.

 
Nahoru Odpovědět
3.2.2017 0:02
Avatar
Martin Dráb
Tvůrce
Avatar
Odpovídá na petr.dar
Martin Dráb:3.2.2017 0:39

Druhou možností (ale nemusí ti vyhovovat) , jak tento problém řešit, je použít některý z kontejnerů pro ukládání dvojic (klíč;hodnota). Jako klíč budeš ukládat svoje prvky, jako hodnoty číslo udávající vždy počet prvku-klíče vedoucího na danou hodnotu.

Nahoru Odpovědět
3.2.2017 0:39
2 + 2 = 5 for extremely large values of 2
Avatar
petr.dar
Člen
Avatar
Odpovídá na Martin Dráb
petr.dar:7.2.2017 20:58

Nemělo by to být naopak?
klíč - počet prvků
hodnota - ukládání svých prvků.
Map automaticky třídí hodnoty od nejmenší po největší podle klíče, tak potřebuju zadat množství do klíče a největší počet bude na posledním místě.

Ale dík za tip.

 
Nahoru Odpovědět
7.2.2017 20:58
Avatar
Martin Dráb
Tvůrce
Avatar
Odpovídá na petr.dar
Martin Dráb:7.2.2017 23:06

V mém návrhu není mapa používána na to, aby ti vrátila nejčastějí prvek, ale pro rychlé zjištění, zda prvek ve vstupním poli je vícekrát, tzn. můžu snadno počítat množství výskytů. Tohle bude podle mě problém pro tvoje použití mapy.

Nahoru Odpovědět
7.2.2017 23:06
2 + 2 = 5 for extremely large values of 2
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 5 zpráv z 5.