c++ - Why is vector<Data*>::iterator valid and vector<Data*>*::iterator not? -
i have these 3 related class members:
vector<frame*>* poolframes; vector<frame*>*::iterator frameiterator; vector<vector<frame*>::iterator>* poolframeiterators;
when compile, gcc tells me
error: invalid use of ‘::’ error: expected ‘;’ before ‘frameiterator’
in reference middle line, define frameiterators. goes away when loose pointer vector , make vector::iterator. however, want them pointers. there special way define data type want, or need use vector::iterator , dereference?
i see trying do. you've defined poolframes
pointer vector. want define frameiterator
iterator poolframes
. since poolframes
pointer, think need special pointer-to-vector iterator, you're mistaken.
a vector iterator vector iterator vector iterator, no matter how managed refer vector in first place. need frameiterator
simple iterator:
vector<data*>::iterator frameiterator;
to assign value variable, you'll need dereference vector pointer, this:
frameiterator = poolframes->begin();
if poolframes
vector instead of pointer vector, you'd use dot operator instead: poolframes.begin()
.
Comments
Post a Comment