Вопрос по векторам, указателям и итераторам - PullRequest
7 голосов
/ 19 мая 2010

Ребята, у меня завтра промежуточный экзамен, и я просматривал образец бумаги, и я не уверен в этом вопросе. Любая помощь будет оценена.

Пусть v будет vector<Thingie*>, так что каждый элемент v[i] содержит указатель на Thingie. Если p является vector<Thingie*>::iterator, ответьте на следующие вопросы:

  1. какой тип p?
  2. какой тип *p?
  3. какой код предоставляет адрес фактического Thingie?
  4. какой код предоставляет фактический Thingie?

Ответы [ 2 ]

18 голосов
/ 19 мая 2010

какой тип p?

p относится к типу vector<Thingie*>::iterator, независимо от типа.

какой тип *p?

*p является Thingie*&; то есть это ссылка на элемент вектора, на который указывает итератор.

какой код предоставляет адрес фактического Thingie?

*p, поскольку элементы вектора являются указателями на Thingie s, а *p дает ссылку на элемент в векторе.

какой код предоставляет фактический Thingie?

**p; то есть вы разыменовываете указатель, полученный с помощью *p, чтобы получить референт указателя.

4 голосов
/ 19 мая 2010

p - это vector::iterator

*p - указатель на Thingie

v[i]

*v[i]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...