Chciałem napisac program który przekształci równanie z postaci infiksowej na ONP. Wymyśliłem, żeby wczytywac znaki po kolei, sprawdzac czy jest to liczba czy operand i w zaleznosci od tego ustawiac pole 'liczba' w strukturze na true lub false a w pole wartosc wpisac odpowiednia liczba lub kod ascii operandu. Wynik chciałbym zapisać w wektorze i tu mam problem.
struct lexem
{
bool liczba;
int wartosc;
lexem (int arg) {wartosc=arg;}
};
void parsuj(string rownanie,vector<lexem> lex())
{
for (int i=0;i<rownanie.length();i++)
{
if ((int)rownanie[i]>47 && (int)rownanie[i]<58)
{
lex[i].liczba=true;
lex[i].lexem(atoi(rownanie[i]));
n++;
}
... //na razie tylko liczby jednocyfrowe
}
Przy próbie kompilacji (Dev C++) dostaję komunikat:
pointer to a function used in arithmetic request for member
liczba' in
*(lex + (+((unsigned int)n)))', which is of non-class type `std::vector<lexem, std::allocator<lexem> > ()()'
Dla linijek 14 i 15. Pomijam już fakt, że prawdopodobnie źle użyłem konstruktora :)