gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 20:09:27 29 4
gpt4 key购买 nike

for(auto it = M.begin(); it!=M.end();it++)
{
cout<<it->first<<" "<<it->second<<"\n";
}

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

    for(auto it : M)
{
if(it->second == 1) return it->first;
}

这给了我一个错误。

为什么我必须使用 it.secondit.first 而不是 it ->第二个它->第一个

最佳答案

在第一个循环中,您使用迭代器来迭代容器M。迭代器模拟指针,并且必须取消引用才能给出迭代器“指向”的值。事实上,对于该循环,it->first 实际上与 (*i​​t).first 相同。

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

关于c++ - it.first 和 it->first 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61807613/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com