Rumah >pembangunan bahagian belakang >C++ >Bolehkah C 11 Berasaskan Julat Untuk Gelung Berulang Secara Songsang?

Bolehkah C 11 Berasaskan Julat Untuk Gelung Berulang Secara Songsang?

DDD
DDDasal
2024-12-12 22:02:17553semak imbas

Can C  11 Range-Based For Loops Iterate in Reverse?

Lelaran Berasaskan Julat Songsang dengan C 11

Soalan:

Adakah ada cara untuk membalikkan arah iterator bagi gelung untuk berasaskan julat? Pada masa ini, menukar gelung standard dengan iterator eksplisit menggunakan rbegin() dan rend() adalah mungkin, tetapi adalah berfaedah untuk mempunyai sintaks analog untuk versi berasaskan julat.

Jawapan:

Daripada mencipta penyesuai tersuai, Boost menawarkan penyelesaian yang mudah dengan boost::adaptors::reverse. Penyesuai ini menterbalikkan susunan elemen semasa melelaran.

Contoh Penggunaan:

#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';
}

Atas ialah kandungan terperinci Bolehkah C 11 Berasaskan Julat Untuk Gelung Berulang Secara Songsang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn