微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

C++ 具有多个引用值的范围循环 [a, b]

如何解决C++ 具有多个引用值的范围循环 [a, b]

我看到有些人谈论 C++17 在 for ranged 循环中的新抽象,其中可以使用多个迭代器/值/引用:

for(auto&& [output1,output2] : container)
{...}

我一直试图在谷歌上找到解释,但没有成功,因为我认为我没有使用正确的术语。无论如何,如果有人有 cppreference 的链接并回答以下问题,我会很高兴:

1.我们使用“&&”是因为[output1,output2]作为一个整体是一个右值吗?

2. 让我们假设 output1output2 都是 int 类型。 “自动”的类型是什么?换句话说,[output1,output2] 是什么类型的(右值?)对象,以防我不想使用“auto”并专门声明它? (也许是元组?)

3. 幕后发生了什么?是否在幕后使用了两个迭代器(见下文)?使用真正的迭代器对象的非 C++17 实现是什么?

for(Container::iterator it1 =...,Container::iteratorit2 = ...; it1!=...,it2!=...; ++it1,++it2)
{...}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。