Problem wygląda następująco:
typedef pair<string,int> typ;
typedef vector<typ> list;
typedef pair<int , list> weks;
typedef vector<weks> wektor;
list pary; //przechowuje nazwe zmiennej i jej potege
wektor temp; //przechowuje wspolczynnik jednomianu i jego elementy zapisane w wektorze list
wektor temp2; //to samo tylko przeciwne wspolczynniki
Wektory te są umieszczone w różnych klasach ale to raczej nie ma wielkiego znaczenia. Feralny fragment kodu:
wielomian::wielomian(wektor temp2) //konstruktor tworzący wielomian z podanych w wektorze danych
{
iter1=temp2.begin();
iter2=temp2.end();
for ( ; iter1!=iter2;iter1++) //tyle ile istnieje wektorów temp2 czyli ile jednomianow w wielomianie
{
char a0[10];
sprintf(a0, "%d" , (*iter1).first); //zapisz w a0 kolejne wspolczynniki
text+=a0;
//do tego momentu nie ma problemu
for ( ; (*iter1).second!=(*iter2).second ; iter1++) //tyle ile zmiennych w jednomianie
{
char st[10];
sprintf(st , "%d" , (*iter1).second.second); // tu wywala bład
text+= O + (*iter1).second.first + T + st + Z; //tu tez
}
}
}
Kompilator wyrzuca:
'class list' has no member named 'second'
'class list' has no member named 'first'
Nie potrafie sobie z tym poradzić - nie potrafię się dostać do elementów temp2( int , list). Do elementu int nie mam problemow zeby sie dostac wiec czemu nie moge odczytac danych z list? Probowalem to robić przy pomocy kolejnych iteratorów - bez skutku.