【问题标题】:Is it possible to iterate through pair of values using for loop in c++? [duplicate]是否可以在 c++ 中使用 for 循环遍历一对值? [复制]
【发布时间】:2020-10-23 17:42:51
【问题描述】:

这样的事情是否可行,或者有什么方法可以在for 循环中单独分配对值?

vector<pair<int, int>> arr;
// Input some values here in arr
for(auto &[x,y]: arr){
     cout<<x<<" "<<y;
}

【问题讨论】:

  • 您的代码 compiles 为 C++17。
  • @πάνταῥεῖ 这使用结构化绑定:en.cppreference.com/w/cpp/language/structured_binding。它应该在 C++17 中编译。
  • @MikeCAT 谢谢。我得到了它。我在别人的代码中看到过这样的情况,但在我的版本中却让我出错。现在我必须更改为 C++17。
  • @MikeCAT 添加答案?
  • @Anonymous1847 我不会,因为我不知道 C++17,我只是通过查看编译器消息发现了这一点。您可以添加答案。

标签: c++ vector


【解决方案1】:

正如@MikeCAT 所说,您的代码实际上是 C++17 或更高版本中的有效代码。您正在使用所谓的structured binding。它可以从数组或简单的类类型中解包值,在本例中来自pairs。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-05-27
    • 2013-04-13
    • 2019-04-13
    • 1970-01-01
    • 2015-03-18
    • 1970-01-01
    • 2011-06-14
    • 1970-01-01
    相关资源
    最近更新 更多