abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 02:16 | Bezpečnostní upozornění

    Zranitelnost CVE-2026-98432 s CVSS 9.8 odhalila AI od společnosti Anthropic. Jedná se o kritickou chybu v implementaci MPTCP (multipath TCP). Debian vydal patche 16.10. a 22.10., ale např. Ubuntu je zatím bez opravy. Více informací na The Hacker News.

    Max | Komentářů: 14
    včera 23:22 | Zajímavý software

    Na Slovensku vznikla úplne nová rally hra, ktorá je zadarmo a funguje vo Windowse, Linuxe či na Macu. Greenie Rally má viac ako 50 tratí a vozidiel, šampionáty či turnaje. Má retro feeling a imituje automobilové hry z prelomu tisícročí. Vyskúšate prejsť všetky mapy na Škode 130RS?

    Stanislav Hoferek | Komentářů: 2
    včera 14:33 | Komunita

    Do základního systému NetBSD -current byl přidán nový editor atto jako alternativa k editorům vi a xedit.

    Ladislav Hagara | Komentářů: 1
    včera 14:11 | IT novinky

    Společnost System76 představila kompaktní 11litrový Thelio Prime Desktop. S procesorem AMD Ryzen 9000. S Pop!_OS 24.04 LTS s desktopovým prostředím COSMIC nebo Ubuntu 24.04 LTS.

    Ladislav Hagara | Komentářů: 0
    včera 13:44 | Humor

    Čínská státní televize pozastavila vysílání španělské La Ligy a čínské internetové platformy omezily obsah s Kylianem Mbappém poté, co slavný fotbalista ve francouzském pořadu The Bridge mluvil o svém oblíbeném memu, v němž je jeho tvář vložena do portrétu zobrazujícího diktátora Mao Ce-tunga. 'Můj oblíbený mem je ten, na kterém dali můj obličej na čínského diktátora. To mě opravdu rozesmívá. S přáteli ho používám pořád' řekl,

    … více »
    Pendrekama do nich❗ | Komentářů: 7
    včera 13:22 | IT novinky

    Při příležitosti oslav Dne vzniku samostatného československého státu (28. října) byly uděleny medaile Za zásluhy tvůrci aplikace Záchranka Filipu Maleňákovi, vědci v oblasti umělé inteligence Tomáši Mikolovovi a Olze Štěpánkové, vědkyni zabývající se kybernetikou, robotikou a strojovým učením, průkopnici v oblastech výuky a využití umělé inteligence v medicínském inženýrství.

    Pendrekama do nich❗ | Komentářů: 6
    včera 01:33 | IT novinky

    Apple představil nový iPad mini, iMac s čipem M6, 14palcový MacBook Pro s čipem M6 a MacBook Pro s PROLED XDR displejem – první Mac s dotykovým ovládáním.

    Ladislav Hagara | Komentářů: 5
    28.10. 23:22 | Zajímavý projekt

    Nedávno představený projekt mapSTL.com řeší budoucnost. 𝕏: "Netušil jsem, kolik patentů na generování map existuje. Existují patenty na generování fantasy map 🫣. Cokoliv je na 3D tiskárnu a tvoří to produkt, bude to mít patenty. Tak bacha na to!" … více »

    Ladislav Hagara | Komentářů: 5
    28.10. 18:55 | Nová verze

    Multiplatformní emulátor terminálu Ghostty byl vydán ve verzi 1.4 (𝕏). Přehled novinek a vylepšení v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    28.10. 18:22 | Bezpečnostní upozornění

    Byla objevena zranitelnost Tailworm v Tailscale a Headscale umožňující lokální eskalaci práv přihlášeného uživatele. Následně byla v Tailscale v opravené verzi 1.104.4+ změněna architektura aplikace. Viz příspěvek na blogu Tailscale.

    vencour | Komentářů: 0
    Které desktopové prostředí na Linuxu používáte?
     (9%)
     (7%)
     (4%)
     (20%)
     (29%)
     (9%)
     (5%)
     (2%)
     (14%)
     (20%)
    Celkem 2944 hlasů
     Komentářů: 34, poslední 26.10. 08:24
    Rozcestník

    Dotaz: Serazeni C++ map podle hodnoty

    13.3.2012 20:14 Karel Machyna
    Serazeni C++ map podle hodnoty
    Přečteno: 876×
    Zdravim, mam v C++ nasledujici mapu:
    map< string,vector< int > > mymap;
    
    Pokud ji pres iterator takto projdu a vypisu:
            for (it=mymap.begin(); it != mymap.end(); it++)
            {
                cout << (*it).first << " => ";
                vector< int > v = (*it).second;
                for (it2=v.begin(); it2 < v.end(); it2++)
                    cout << " " << *it; 
                cout << endl;
            }  
    
    Tak mi ji to vypise serazenou abecedne podle tech retezcu v klici. Ja bych tu mapu potreboval projit sestupne podle velikosti vektoru (kde velikosti vektory myslim pocet prvku v tomto vektoru), tedy vzhledem k predchazejicimu kodu sestupne serazenou podle (*it).second.size(). Jak toho prosim mohu co nejjednoduseji dosahnout?

    Odpovědi

    13.3.2012 20:57 ludo
    Rozbalit Rozbalit vše Re: Serazeni C++ map podle hodnoty
    zadefinuj porovnavaci functor, treba:
    struct mycompare {
        typedef pair< string, vector< int> > mypair;
        
        bool operator()(const mypair& x, const mypair& y) {
            return x.second.size() < y.second.size();
        }
    };
    

    jsou i dalsi moznosti, jako boost::bind, nebo pripadne lambda funkce v novym standarde (ale tam v tom prehled moc nemam)

    14.3.2012 09:49 Karel Machyna
    Rozbalit Rozbalit vše Re: Serazeni C++ map podle hodnoty
    Ano, ten functor vypada, ze to je presne co potrebuji. S temito prostredky C++, ale nemam moc zkusenosti, muzete prosim k tomu Vasemu kodu jeste uvest, jakym stylem tu strukturu mycompare pouziju, abych tu moji mapu prosel v pozadovanem poradi?
    14.3.2012 12:30 ludo
    Rozbalit Rozbalit vše Re: Serazeni C++ map podle hodnoty
    Tak to ze to chces v tom poradi jenom projit, jsem si nevsiml. Kdyby jsi tu mapu chtel mit od zacatku setridenou podle velikosti tech vektoru tak ji staci zadeklarovat jako
    typedef map< string,vector< int>,mycompare> mymap;
    
    Kdyz ji potrebujes raz setridenou podle stringu a jindy podle velikosti vektoru tak bych asi pouzil tu multimapu, jak je navrhnuto v dalsim komentari. Jestli je to jenom kvuli jednomu vypisu, tak bych zvazil zkopirovani prvu do vektoru a pak sort (kde by taky byl jako parametr ten porovnavaci objekt...
    14.3.2012 10:24 me vakérav
    Rozbalit Rozbalit vše Re: Serazeni C++ map podle hodnoty
    Pokud to v tom pořadí chceš procházet častěji, můžeš to podle toho řadit přímo: struktura multimap, kde klíčem je délka toho vektoru a string+vektor samotný vrznout do nějaké obalovací struktury. Pak už vybíráš stejně jako u jiných kontejnerů.
    16.3.2012 13:49 ::: | skóre: 14 | blog: e_lama
    Rozbalit Rozbalit vše Re: Serazeni C++ map podle hodnoty
    s tou multimapou by byl problem kdyz se nektery z tech vektoru zmeni - potom bys tu polozku musel vyjmout a zase vlozit aby to bylo spravne serazeny...

    zalezi jaky vsechny operace s tim budes delat a jak casto, ale pokud to neni neco hodne specifickyho tak nejjednodussi a asi i nejrychlejsi bude vytvorit:

    vector<vector<int> *>

    do nej zkopirovat ukazatele na ty puvodni vektory a seradit to pomoci sort()

    Založit nové vlákno • Nahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.