C++是否有另一种方法来首先访问成员和第二个访问成员,而不是对std::vector<std::pair<int,int>>使用范围for循环?
前几天我解决了另一个问题,涉及一个std::vector <std::pair<int,int>>被调用的name.
我的问题是,如何访问这种类型的name.first和name.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
}
THE END
二维码