代码之家  ›  专栏  ›  技术社区  ›  Megidd

从结束到开始迭代基于范围的for循环[重复]

  •  0
  • Megidd  · 技术社区  · 5 年前

    这个问题已经有了答案:

    从最后一个项到第一个项的反向迭代可以如下所示:

    for (int i = myContainer.size() - 1; i >= 0; --i) {
        // Do
    }
    

    如何反转基于范围的for循环:

    for (auto i : myContainer) {
        // Do
    }
    
    1 回复  |  直到 5 年前
        1
  •  0
  •   Thomas Sablik    5 年前

    使用 std::reverse 是的。

    std::reverse(std::begin(myContainer), std::end(myContainer));
    for (auto i : myContainer) {
        // Do
    }
    

    这将添加o(n)迭代器交换