关于向量、指针和迭代器的问题

Posted

技术标签:

【中文标题】关于向量、指针和迭代器的问题【英文标题】:A question on vectors, pointers and iterators 【发布时间】:2010-05-19 00:30:46 【问题描述】:

各位,我明天有期中考试,我正在看样卷,我不确定这个问题。任何帮助将不胜感激。

v 成为vector<Thingie*>,这样每个元素v[i] 都包含一个指向Thingie 的指针。如果pvector<Thingie*>::iterator,请回答以下问题:

    p是什么类型? *p是什么类型? 什么代码提供了实际Thingie的地址? 什么代码提供了实际的Thingie

【问题讨论】:

哪个真正的东西?迭代器指向的那个还是位于v[i]的那个? 【参考方案1】:

p 是什么类型?

pvector<Thingie*>::iterator 类型,不管它是什么类型。

*p 是什么类型?

*pThingie*&;也就是说,它是对迭代器指向的向量中元素的引用。

什么代码提供了实际Thingie的地址?

*p,因为向量的元素是指向Thingies 的指针,而*p 给出了对向量中元素的引用。

什么代码提供了实际的Thingie

**p;也就是你解引用*p得到的指针,得到指针的所指对象。

【讨论】:

【参考方案2】:

pvector::iterator

*p 是指向Thingie 的指针

v[i]

*v[i]

【讨论】:

以上是关于关于向量、指针和迭代器的问题的主要内容,如果未能解决你的问题,请参考以下文章

STL中的vector和list的迭代器引申的关于迭代器的总结

向量和迭代器的分段错误? [关闭]

练笔-字符串,向量和数组6

带有向量迭代器的程序中的分段错误

迭代器的解释

STL迭代器之向量