C++是否有另一种方法来首先访问成员和第二个访问成员,而不是对std::vector<std::pair<int,int>>使用范围for循环?

前几天我解决了另一个问题,涉及一个std::vector <std::pair<int,int>>被调用的name.

我的问题是,如何访问这种类型的name.firstname.second

我最终使用了一个 ranged-for 循环,这解决了我的问题

for(i : name) { i->first , i->second}

但是,还有别的办法吗?我对如何在正常for循环中访问它特别感兴趣,例如

for(int i = 0; i < name.size(); i++) { std::vector::std::pair::name.first}

有人可以为我解释一下吗?

回答

在 C++17 中,您可以使用结构化绑定

for (auto & [a, b] : name) {
    // a is a reference to the first of each pair
    // b is a reference to the second of each pair
}


以上是C++是否有另一种方法来首先访问成员和第二个访问成员,而不是对std::vector&lt;std::pair&lt;int,int&gt;&gt;使用范围for循环?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>