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;