C++ set<set<Class>>

Programovacie jazyky, rady, poradňa...
skvido
Star
Star
Príspevky: 508
Registrovaný: 17 nov 2008, 7:43
Kontaktovať používateľa:

C++ set<set<Class>>

Príspevok od používateľa skvido »

zdravim , chcel by som sa spytat ci mi niekto vie poradit s nasledovnym problemom , vytvorim si set setov napriklad s intami takze set<set<int>> a; vytvorim si iterator set<set<int>>::iterator it = a.begin();
cez for cyklus zapisem jednotlive sety (set<int> b , set<int> c) ktore su naplnene naikymi cislami , a moja otazka znie , akym sposobom dodatocne vlozim niaku hodnotu do jedneho z toho setu ked uz za nachadza v sete setov ?

Priklad a.begin() mi ukazuje na jeden zo setov (b alebo c) a donho chcem insertnut dalsiu hodnotu , napr. int d =5; logicky ma napadlo ze spravim taketo nieco a.begin()->insert(d); popripade it->insert(d); ale ani jeden zo sposobov compilatorom neprejde

//autoeditácia príspevku (19 Nov 2016, 13:15)
Otazka c.2 ak mam classu A ktora ma v sebe string x , int z , viem niako nastavit set.insert tak aby mi to zoradovalo napriklad podla "z" ?
harrison314
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 8216
Registrovaný: 27 máj 2009, 20:42
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: C++ set<set<Class>>

Príspevok od používateľa harrison314 »

Na prvu otazku,
skus pouzit set<set<int>*>

Kód: Vybrať všetko

void setTest()
{
    std::set<std::set<int>*> setOfSet;

    std::set<int> a;
    a.insert(12);
    a.insert(13);

    std::set<int> b;
    b.insert(120);
    b.insert(130);

    setOfSet.insert(&a);
    setOfSet.insert(&b);

    int addToAll = 45;
    for(std::set<std::set<int>*>::iterator it = setOfSet.begin(); it!=setOfSet.end(); it++)
    {
        std::set<int> *tmp = (*it);
        tmp->insert(addToAll);
    }

    for(std::set<std::set<int>*>::iterator it = setOfSet.begin(); it!=setOfSet.end(); it++)
    {
        std::cout<<"Next set"<<std::endl;
        for(std::set<int>::iterator nit = (*it)->begin(); nit != (*it)->end(); nit++)
        {
            std::cout<<(*nit)<<std::endl;
        }
    }
}
2. Malo by stacit definovat nad triedou A "less then operator" a < b
Napísať odpoveď