关于向量、指针和迭代器的问题
Posted
技术标签:
【中文标题】关于向量、指针和迭代器的问题【英文标题】:A question on vectors, pointers and iterators 【发布时间】:2010-05-19 00:30:46 【问题描述】:各位,我明天有期中考试,我正在看样卷,我不确定这个问题。任何帮助将不胜感激。
让v
成为vector<Thingie*>
,这样每个元素v[i]
都包含一个指向Thingie
的指针。如果p
是vector<Thingie*>::iterator
,请回答以下问题:
p
是什么类型?
*p
是什么类型?
什么代码提供了实际Thingie
的地址?
什么代码提供了实际的Thingie
?
【问题讨论】:
哪个真正的东西?迭代器指向的那个还是位于v[i]
的那个?
【参考方案1】:
p
是什么类型?
p
是 vector<Thingie*>::iterator
类型,不管它是什么类型。
*p
是什么类型?
*p
是Thingie*&
;也就是说,它是对迭代器指向的向量中元素的引用。
什么代码提供了实际
Thingie
的地址?
*p
,因为向量的元素是指向Thingie
s 的指针,而*p
给出了对向量中元素的引用。
什么代码提供了实际的
Thingie
?
**p
;也就是你解引用*p
得到的指针,得到指针的所指对象。
【讨论】:
【参考方案2】:p
是vector::iterator
*p
是指向Thingie
的指针
v[i]
*v[i]
【讨论】:
以上是关于关于向量、指针和迭代器的问题的主要内容,如果未能解决你的问题,请参考以下文章