Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Saya Boleh Mengundurkan Lelaran Melalui Bekas Menggunakan C 11 Berasaskan Julat untuk Gelung?

Bagaimanakah Saya Boleh Mengundurkan Lelaran Melalui Bekas Menggunakan C 11 Berasaskan Julat untuk Gelung?

Patricia Arquette
Lepaskan: 2024-12-14 13:34:12
asal
363 orang telah melayarinya

How Can I Reverse Iterate Through a Container Using C  11's Range-Based for-Loops?

Lelaran Songsang dalam Range-Based for-Gelung dengan C 11

Dalam C , bagi-gelung berasaskan julat menyediakan cara yang mudah untuk berulang melalui unsur-unsur bekas. Walau bagaimanapun, tiada penyesuai bekas terbina dalam yang boleh menterbalikkan arah iterator, menjadikannya mencabar untuk melelaran ke atas bekas dalam susunan terbalik.

Konsep: Penyesuai Bekas

Sebelum meneroka penyelesaian, adalah penting untuk memahami konsep penyesuai kontena. Ini ialah objek yang membalut bekas dan memberikan pandangan yang diubah suai bagi elemennya. Penyesuai boleh menapis, mengubah atau sebaliknya memanipulasi elemen yang dikembalikan oleh bekas asas.

Penyelesaian: Penyesuai terbalik Boost

Untuk membalikkan arah iterator dan mendayakan lelaran terbalik dalam gelung berasaskan julat, kami boleh memanfaatkan rangsangan::penyesuai::penyesuai terbalik daripada Boost C Perpustakaan. Penyesuai ini membalut bekas dan mengembalikan jujukan terbalik elemennya.

Contoh

Pertimbangkan contoh berikut:

#include <list>
#include <iostream>
#include <boost/range/adaptor/reversed.hpp>

int main() {
    std::list<int> x { 2, 3, 5, 7, 11, 13, 17, 19 };

    // Iterate in reverse order
    for (auto i : boost::adaptors::reverse(x))
        std::cout << i << '\n';

    // Iterate in forward order
    for (auto i : x)
        std::cout << i << '\n';
}
Salin selepas log masuk

Dalam contoh ini , penyesuai terbalik digunakan untuk mengulangi senarai x dalam susunan terbalik. Outputnya ialah:

19
17
13
11
7
5
3
2
Salin selepas log masuk

Nota: Rangsangan::adaptors::reverse adapter ialah sebahagian daripada Boost C Libraries, iaitu koleksi perpustakaan sumber terbuka yang boleh dimuat turun dan disepadukan ke dalam projek C sedia ada.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengundurkan Lelaran Melalui Bekas Menggunakan C 11 Berasaskan Julat untuk Gelung?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan