首頁 > 後端開發 > C++ > 如何使用 C 11 基於範圍的 For 迴圈輕鬆地反向迭代容器?

如何使用 C 11 基於範圍的 For 迴圈輕鬆地反向迭代容器?

DDD
發布: 2024-12-02 15:58:10
原創
929 人瀏覽過

How Can I Easily Reverse Iterate Through a Container Using C  11 Range-Based For-Loops?

C 11 反向基於範圍的For 循環

使用基於範圍的for 循環以相反的順序迭代容器需要反轉迭代器的方向。雖然顯式迭代器提供了一個簡單的解決方案,但是是否有一個方便的容器適配器可以提供此功能?

反向迭代器適配器

幸運的是,Boost 庫包含一個解決方案:boost ::適配器::反向。此適配器反轉容器的迭代順序,使基於範圍的 for 迴圈能夠反向迭代。

範例用法

考慮一個整數容器:

std::list<int> x { 2, 3, 5, 7, 11, 13, 17, 19 };
登入後複製

要使用基於範圍的for 循環反向迭代此容器,請使用反迭代此容器,請使用反迭代此容器,請使用反迭代此容器,請使用反迭代此容器,請使用反迭代此容器,請使用反迭代此容器,請使用反迭代此容器,請使用反重複向適配器:

for (auto i : boost::adaptors::reverse(x))
    std::cout << i << '\n';
登入後複製

這將以相反的順序列印清單的元素。

與原始迭代的比較

為了比較,這裡是沒有反向適配器的原始迭代順序:

for (auto i : x)
    std::cout << i << '\n';
登入後複製

這將列印清單中的元素

結論

Boost的反向適配器提供了一種使用基於範圍的 for 循環以相反順序迭代容器的便捷方法。這簡化了程式碼,並允許更簡潔、更有效率的反向迭代。

以上是如何使用 C 11 基於範圍的 For 迴圈輕鬆地反向迭代容器?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板