Jest sobie struktura Figure która ma obiekt typu float o nazwie x.
Jest sobie funkcja której prototyp to void draw(Figure &figure)
vector<Figure *>::iterator iter=newFig.begin();
for(;iter!=newFig.end();++iter)
if(**iter.x > 0.0f) //jak wezmę to w komentarz to kompilacja przechodzi
draw(**iter);
Z jakiegoś powodu kompilator czepia się wywołania **iter.x. Trochę nie rozumiem czemu bo jeśli czepia się tego wywołania to dlaczego nie czepia się wywołania draw(**iter)? Type **iter to Figure wobec czego jak dam kropkę i 'x' to powinien mi odwołać się do zmiennej x.
Komunikat jaki kompilator wywala to:
error C2039: 'x' : is not a member of 'std::_Vector_iterator<_Ty,_Alloc>'
1> with
1> [
1> _Ty=Figure *,
1> _Alloc=std::allocator<Figure *>
1> ]
Pytanie jak poprawić by było dobrze stosując dalej iterator. Bo oczywiście można dać:
for(u32 i=0;i<newFig.size();++i)
if(newFig[i]->x > 0.0f)
draw(*newFig[i]);
i po problemie ale wolałbym się dowiedzieć jak zrobić z iteratorem.