使用C 11 進行基於範圍的反向迭代
問題:
有辦法嗎反轉基於範圍的for 迴圈的迭代器方向?目前,使用 rbegin() 和 rend() 轉換具有明確迭代器的標準 for 迴圈是可能的,但對於基於範圍的版本使用類似的語法將是有利的。
答案:
Boost 不是建立自訂適配器,而是透過 boost::adaptors::reverse 提供了便利的解決方案。此適配器在迭代時反轉元素的順序。
使用範例:
#include <list> #include <iostream> #include <boost/range/adaptor/reversed.hpp> int main() { std::list<int> x { 2, 3, 5, 7, 11, 13, 17, 19 }; for (auto i : boost::adaptors::reverse(x)) std::cout << i << '\n'; for (auto i : x) std::cout << i << '\n'; }
以上是C 11 基於範圍的 For 迴圈可以反向迭代嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!