首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用`&*iter`返回指向iter指向的对象的指针

使用`&*iter`返回指向iter指向的对象的指针
EN

Stack Overflow用户
提问于 2011-10-19 16:29:21
回答 1查看 265关注 0票数 1

我有一个迭代器,我想返回一个指向它所指向的元素的指针。

这样做可以吗?

return &*iter;

这看起来真的不是一个好主意。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-10-19 16:32:25

这是非常好的。但请注意,如果迭代器是在调整大小时释放和重新分配内存的容器,那么返回的指针将变得无效。例如,如果迭代器是std::vector的迭代器,那么如果基础向量自身调整大小,iter&*iter都将无效。

顺便说一下,主题的标题和您在第一行中所说的内容不匹配:

使用&*iter (title)从iter返回指针

我有一个迭代器,我想返回它所指向的元素。(第一行)

这两个词的含义都不同。你所写的,即return &*iter就是你在标题中所说的。但第二句话的意思是:

代码语言:javascript
复制
return *iter;

它返回迭代器在语法上所指向的元素。它不返回指向该元素的指针。即使向量自动调整大小,这也是安全的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7818493

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档