2010-05-19 16 views
7

Faceci, jutro mam egzamin śródsemestralny, a ja przeglądałem próbkę papieru i nie jestem pewien co do tego pytania. Każda pomoc będzie doceniona.Pytanie o wektory, wskaźniki i iteratory

Let v być vector<Thingie*>, tak, że każdy element v[i] zawiera wskaźnik do Thingie. Jeśli p jest vector<Thingie*>::iterator, odpowiedz na następujące pytania:

  1. jakiego typu jest p?
  2. jaki jest typ *p?
  3. jaki kod podaje adres rzeczywistego Thingie?
  4. jaki kod zapewnia rzeczywistą Thingie?
+0

* Które * Rzeczywista thingie? Ten wskazywany przez iterator lub ten znajdujący się w 'v [i]'? –

Odpowiedz

18

co to jest p?

p jest typu vector<Thingie*>::iterator, niezależnie od tego, jaki jest typ.

co to jest *p?

*p to Thingie*&; oznacza to, że jest to odniesienie do elementu w wektorze, w którym wskazuje punkt iteracyjny.

jaki kod podaje adres rzeczywistego Thingie?

*p, ponieważ elementy wektora są wskaźnikami do Thingie s i *p daje odniesienie do elementu w tym wektorze.

jaki kod zapewnia rzeczywistą Thingie?

**p; oznacza to, że wykreślasz wskaźnik uzyskany przez *p, aby uzyskać odniesienie wskaźnika.

+0

+1 za pierwszy post. :) –

4

p jest vector::iterator

*p jest wskaźnikiem do Thingie

v[i]

*v[i]