双解引用迭代器的返回类型 在大学期间,我面对这个问题,关于STL的列表,C++版本98:
给出这些行:双解引用迭代器的返回类型 在大学期间,我面对这个问题,关于STL的列表,C++版本98:,c++,stl,c++98,listiterator,C++,Stl,C++98,Listiterator,给出这些行:list l;l、 推回(新A)问题是什么 调用的返回类型**(l.begin()) 在可用的答案中有A和A&(其他答案不相关) 我以为是A,但教授说是A& 我了解到迭代器的解引用返回对列表元素的引用,因此*(l.begin())应该返回类型为(a*)& 然后像**(l.begin())这样的另一个解引用应该“遍历”列表容器给出的引用,甚至遍历指向A的指针,并最终返回A类型的对象 正确的解释是什么?请提供解释。如果p为A*类型,则*p为A&类型 如果p的类型为A*&(对指针的引用),
list l;l、 推回(新A)代码>问题是什么
调用的返回类型**(l.begin())
在可用的答案中有A
和A&
(其他答案不相关)
我以为是A,但教授说是A&
我了解到迭代器的解引用返回对列表元素的引用,因此*(l.begin())
应该返回类型为(a*)&
然后像**(l.begin())
这样的另一个解引用应该“遍历”列表容器给出的引用,甚至遍历指向A的指针,并最终返回A
类型的对象
正确的解释是什么?请提供解释。如果p
为A*
类型,则*p
为A&
类型
如果p
的类型为A*&
(对指针的引用),则*p
的类型也为A&
如果x
属于type list::iterator
,那么*x
属于T&
类型,如果T==A*
,那么**x
属于A&
类型如果p
属于A*
类型,那么*p
属于A&/code>类型
如果p
的类型为A*&
(对指针的引用),则*p
的类型也为A&
如果x
是type list::iterator
,那么*x
是T&
类型,如果T==A*
,那么**x
是A&
类型,您可以在中找到
一元*
运算符执行间接寻址:它所指向的表达式
应用的应为指向对象类型的指针,或指向
函数类型,其结果是引用对象或
表达式指向的函数。如果表达式的类型为
是“指向T
”的指针,结果的类型是“T
”
在这里你可以找到
一元*
运算符执行间接寻址:它所指向的表达式
应用的应为指向对象类型的指针,或指向
函数类型,其结果是引用对象或
表达式指向的函数。如果表达式的类型为
是“指向T
”的指针,结果的类型是“T
”
A
与A&
非常不同,没有解释的余地,您可以简单地尝试一下out@tobi303我知道变量和变量引用之间的区别。请再读一遍我的问题。无论如何,谢谢。A
与A&
非常不同,没有解释的余地,您可以简单地尝试一下out@tobi303我知道变量和变量引用之间的区别。请再读一遍我的问题。谢谢你,谢谢你的编辑,内森。我没有意识到这种能力。是否有此标记/标记的文档?编辑工具栏最右侧的编辑区域上方有一个“?”图标。确定。我看到一个“帮助”按钮。谢谢你引起我的注意@AdiLevin从我学到的关于C,并且因为C和C++在指针管理上不应该有任何区别,当你去引用一个指针时,你得到一个值,而不是一个值的引用。因此,如果<代码> p>代码>是“代码> a*<代码>类型,则<代码> *p>代码>类型为<代码> A/COM>。< BR>请提供一些源来说明C++中的不同行为。谢谢编辑,弥敦。我没有意识到这种能力。是否有此标记/标记的文档?编辑工具栏最右侧的编辑区域上方有一个“?”图标。确定。我看到一个“帮助”按钮。谢谢你引起我的注意@AdiLevin从我学到的关于C,并且因为C和C++在指针管理上不应该有任何区别,当你去引用一个指针时,你得到一个值,而不是一个值的引用。因此,如果<代码> P<代码>是“代码> A*<代码>类型,则<代码> *P<代码>是“代码> A/<代码>类型。请提供一些源来说明C++中的不同行为。完全无用且不链接到我的问题。”我发现你的问题很有趣,我试图在C++参考手册中找到你教授所说的解释。我认为你的答案毫无用处,因为它没有回答我的疑虑,因为这只是一本手册的引文。如果你揭露你对我的问题的想法并链接一些来源,我可以接受你的答案。完全没有用,没有链接到我的问题。@bebo很抱歉我的帖子没有用。我发现你的问题很有趣,我试图在C++参考手册中找到你教授所说的解释。我认为你的答案毫无用处,因为它没有回答我的疑虑,因为这只是一本手册的引文。如果你公开你对我的问题的想法,并链接一些来源,我可以接受你的答案。