首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >it.first和it->first有什么区别?

it.first和it->first有什么区别?
EN

Stack Overflow用户
提问于 2020-05-14 21:21:17
回答 2查看 650关注 0票数 2
代码语言:javascript
复制
for(auto it = M.begin(); it!=M.end();it++)
    {
        cout<<it->first<<" "<<it->second<<"\n";  
    }

上面的代码工作得很好但是,

代码语言:javascript
复制
    for(auto it : M)
    {
        if(it->second == 1) return it->first;
    }

这给了我一个错误。

为什么我必须使用it.secondit.first而不是it->secondit->first

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-05-14 21:24:59

在第一个循环中,使用迭代器对容器M进行迭代。迭代器模拟指针,并且必须取消引用才能给出迭代器“指向”的值。实际上,对于这个循环,it->first(*it).first是完全相同的。

在第二个循环中,遍历容器M中的值。循环本身在内部使用迭代器,并为您取消它们。本参考关于“基于范围的for循环”可能会对您有所帮助。

票数 8
EN

Stack Overflow用户

发布于 2020-05-14 21:33:33

基本上,您可以使用.操作符来访问对象的成员,而it->first只是指(*it).first。因此,it是一个指向变量的指针,该变量有一个成员first,因此要访问first,只需取消指针的引用,然后使用.访问成员。现在,如果it是您的变量,而不是指向该变量的指针,那么您可以通过it.first访问它的成员first

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

https://stackoverflow.com/questions/61807613

复制
相关文章

相似问题

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