Tablica list C++

0

Potrzebna jest mi tablica list, która ma nastepującą strukturę:

struct Tstrukt{
   list <long> element;
};
Tstrukt *tablica;

no ewentualnie zamiast <long> to <typ> i

struct typ{
long el;
};

problemem chyba nie jest zapis do takiego tworu, przy zadeklarowanej tablicy

tablica=new Tstrukt [n];

wyglądałoby to (mam nadzieję... mam nadzieję że chociaż tyle jeszcze potrafię..)

tablica[n].element.push_back(x);

gorzej z odczytem

list <typ> iterator ::start=wystap.begin(), stop=wystap.end();

zupełnie się mojemu kompilatorowi nie podoba...

tablica[x].list <typ> iterator ::start=wystap.begin(), stop=wystap.end();

tez nie za bardzo...
jak w takim razie oznaczyć chęć uzyskania dostępu do pola startowego listy?
Poza kodem prosiłabym o słówko komentarza, bo mam wrażenie że coś mi umyka przy dynamicznych strukturach danych, skoro mam z nimi takie problemy :(

0

a takie rozwiazanie pasuje ??

#include <iostream>
#include <list>

using namespace std;

//tworze sobie nowy typ ktory jest aliasem dla listy
typedef std::list<long> dluga_lista;

main()
{
//z nowego typu tworze tablice  
dluga_lista tab[10];// zappis jest rownoznaczny std::list<long> 
tab[1].push_back(5);
dluga_lista::iterator iter = tab[1].begin();// tworze iterator do danej listy 

cout << *iter<<endl;// i juz posluguje sie tylko nim, bez odwolywania sie do ltablicy 
system ("pause");
}

co prawda nie uzylem tutaj struktury ale dziala bardzo dobrze i przyjemnie. W sumei to jedyna roznica z twoimi zalozeniami to to ze nie uzywam struktury ale po krotkich przemysleniach oto wersja kodu z struktura (dzial tak samo)

#include <iostream>
#include <list>

using namespace std;

//typedef std::list<long> dluga_lista;

struct dluga_lista
{
    list<long> elem;
};

main()
{
//dluga_lista tab[10];
dluga_lista tab[10];
tab[1].elem.push_back(5);
list<long>::iterator iter = tab[1].elem.begin();

cout << *iter<<endl;
system ("pause");
}

jak cos to pytaj .
Assassin

1 użytkowników online, w tym zalogowanych: 0, gości: 1