Witam
Chce wykonać kolejkę priorytetową przy użyciu STL'a. Czy ktoś orientuje się może jak ma wyglądać deklaracja takiej listy list oraz wstawianie danych procesów w określone miejsce listy priorytetów. Chodzi mi o sytuację, kiedy wstawiamy proces np. o priorytecie wysoki, który już wcześniej został dodany i musimy znaleźć miejsce w liście, które przechowuję listę zadań o tym priorytecie. Może lepiej zobrazuje rysunek:

obrazek

Napisałem już coś takiego, tylko teraz nie wiem jak odwołać się do listy z listy:

int main()

{
    list<int> l_prio;
    list<string> l_zad;
    list< list<int> > listoflists;

char ch;

    do 
    {
        cout<<"============MEnU=============||"<<endl;
        cout<<"wcisnij 1 by dodac zadanie"<<endl;
        cout<<"wcisnij 2 by pobrac element z listy"<<endl;
        cout<<"wcisnij 3 by wypisac wszystkie zadania"<<endl;
        cout<<"wcisnij 4 by wypisac zadania o danym priorytecie"<<endl;
        cout<<"wcisnij q by wyjsc z programu"<<endl;
        cout<<"podaj liczbe: ";
        cin>>ch;
        switch (ch)
        {
            case '1': 

                {
                    system("CLS");

                    string nazw_zad;
                    cout<<"Podaj nazwe zadania: ";
                    cin>>nazw_zad;

                    int prio;
                    cout<<"Podaj priorytet zadania od 1 do 6 (1-highest priority): ";
                    cin>>prio;

                    list<int>::const_iterator i;

                    bool jest=false;
                    for(i=l_prio.begin(); i!=l_prio.end(); ++i)
                        if (*i==prio) {jest=true; break;}
                        if (jest==false)    
                                                {
                                                     l_prio.push_front(prio);
                                                     listoflists.push_front(l_prio); 
                                                 }
                        else  

                     l_zad.push_front(nazw_zad);
                     listoflists.push_front(l_prio);

                    system("CLS");
                    break;
                }

            case '2':
                {  
                    cout<<"Podaj priorytet zadania od 1 do 6 (1-highest priority): ";

                }
        }
    }
    while(ch != 'q');
    return 0;