A question on vectors, pointers and iterators
Guys, I have a midterm examination tomorrow, and I was looking over the sample paper, and I'm not sure about this question. Any help would开发者_StackOverflow中文版 be appreciated.
Let v
be a vector<Thingie*>
, so that each element v[i]
contains a pointer to a Thingie
. If p
is a vector<Thingie*>::iterator
, answer the following questions:
- what type is
p
? - what type is
*p
? - what code provides the address of the actual
Thingie
? - what code provides the actual
Thingie
?
what type is
p
?
p
is of type vector<Thingie*>::iterator
, whatever type that happens to be.
what type is
*p
?
*p
is a Thingie*&
; that is, it is a reference to the element in the vector at which the iterator points.
what code provides the address of the actual
Thingie
?
*p
, since the elements of the vector are pointers to the Thingie
s, and *p
gives a reference to the element in the vector.
what code provides the actual
Thingie
?
**p
; that is, you dereference the pointer obtained by *p
to obtain the referent of the pointer.
p
is vector::iterator
*p
is a pointer to a Thingie
v[i]
*v[i]
精彩评论