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 11:33 | Zajímavý článek

    Chris Down v obsáhlém článku „vyvrací mýty o zswap a zram“, vysvětluje, co vlastně dělají a jaké jsou mezi nimi rozdíly. Doporučuje vyhýbat se zram na serveru a bez OOM.

    |🇵🇸 | Komentářů: 1
    dnes 11:22 | IT novinky

    Porota v Los Angeles shledala firmy Google a Meta odpovědnými v přelomovém soudním sporu, který se týká závislosti na sociálních sítích; firmy musí zaplatit odškodné tři miliony dolarů (63,4 milionu Kč). Společnosti, které s verdiktem nesouhlasí, čelily obvinění, že své sociální sítě a platformy záměrně navrhly tak, aby si na nich děti vypěstovaly závislost. Porota došla k závěru, že technologické společnosti při navrhování a

    … více »
    Ladislav Hagara | Komentářů: 8
    včera 19:11 | Komunita

    Jelikož vývojáři editorů Vim a Neovim začali při vývoji využívat LLM, Drew DeVault se rozhodl forknout Vim a vytvořil projekt Vim Classic. Vychází z Vimu 8.2.0148, tj. těsně před zavedením Vim9 skriptování.

    Ladislav Hagara | Komentářů: 5
    včera 16:11 | Nová verze

    Byla vydána nová verze 0.56 open source počítačové hry Unvanquished (Wikipedie), forku počítačové hry Tremulous. Instalovat ji lze také z Flathubu.

    Ladislav Hagara | Komentářů: 0
    včera 14:11 | Nová verze

    FreeCAD (Wikipedie), tj. svobodný multiplatformní parametrický 3D CAD, byl vydán ve verzi 1.1 (YouTube). Po roce a čtyřech měsících od předchozí verze 1.0. Přehled novinek i s náhledy v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 4
    včera 13:11 | IT novinky

    Společnost OpenAI oznámila [𝕏], že ukončí aplikaci Sora pro generování krátkých videí pomocí umělé inteligence. Podrobné informace a harmonogram pro aplikaci a API budou brzy zveřejněny.

    Ladislav Hagara | Komentářů: 9
    včera 12:22 | IT novinky

    Evropská směrnice NIS2 přináší nové požadavky v oblasti kybernetické bezpečnosti, které se promítají také do správy doménových jmen. Do českého právního řádu je směrnice implementována prostřednictvím nového zákona o kybernetické bezpečnosti. Jedním z praktických důsledků této legislativní změny je posílení požadavků na dostupnost a správnost kontaktních údajů držitelů domén. Správce registru domény .cz, sdružení CZ.NIC, je v

    … více »
    Ladislav Hagara | Komentářů: 32
    včera 01:55 | Nová verze

    Jonathan Thomas oznámil vydání nové verze 3.5.0 video editoru OpenShot (Wikipedie). Zdrojové kódy OpenShotu jsou k dispozici na GitHubu. Ke stažení je i balíček ve formátu AppImage. Stačí jej stáhnout, nastavit právo na spouštění a spustit.

    Ladislav Hagara | Komentářů: 6
    včera 00:55 | Nová verze

    Byla vydána (𝕏, Bluesky) nová verze 2026.1 linuxové distribuce navržené pro digitální forenzní analýzu a penetrační testování Kali Linux (Wikipedie). Přehled novinek se seznamem 8 nových nástrojů v oficiálním oznámení na blogu.

    Ladislav Hagara | Komentářů: 0
    24.3. 16:33 | IT novinky

    Vláda jmenovala novým zmocněncem pro digitalizaci a strategickou bezpečnost prvního náměstka ministra vnitra Lukáše Klučku. Ten ve funkci nahradil poslance Roberta Králíčka poté, co Králíček na tento post vládního zmocněnce rezignoval. Klučka chce do roka digitalizovat všechny státní služby tak, aby vyhověly zákonu o právu na digitální služby, přičemž dosavadní plán Fialovy vlády počítal s dokončením digitalizace až někdy v roce

    … více »
    NUKE GAZA! 🎆 | Komentářů: 11
    Které desktopové prostředí na Linuxu používáte?
     (15%)
     (7%)
     (1%)
     (12%)
     (30%)
     (2%)
     (5%)
     (1%)
     (13%)
     (24%)
    Celkem 1158 hlasů
     Komentářů: 27, poslední 17.3. 19:26
    Rozcestník

    Dotaz: Serazeni C++ map podle hodnoty

    13.3.2012 20:14 Karel Machyna
    Serazeni C++ map podle hodnoty
    Přečteno: 617×
    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áknoNahoru

    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.