Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/143.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
双解引用迭代器的返回类型 在大学期间,我面对这个问题,关于STL的列表,C++版本98:_C++_Stl_C++98_Listiterator - Fatal编程技术网

双解引用迭代器的返回类型 在大学期间,我面对这个问题,关于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++参考手册中找到你教授所说的解释。我认为你的答案毫无用处,因为它没有回答我的疑虑,因为这只是一本手册的引文。如果你公开你对我的问题的想法,并链接一些来源,我可以接受你的答案。