Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk Mengelakkan Pemisah Luaran dalam Gelung Lelaran: Penyelesaian A C 11?

Bagaimana untuk Mengelakkan Pemisah Luaran dalam Gelung Lelaran: Penyelesaian A C 11?

DDD
Lepaskan: 2024-10-30 21:13:02
asal
614 orang telah melayarinya

How to Avoid Extraneous Separators in Iteration Loops: A C  11 Solution?

Mengelakkan Pemisah Luaran dalam Gelung Lelaran

Lelaran pada jujukan elemen selalunya melibatkan pencetakan atau melakukan beberapa tindakan yang memerlukan pemisah antara elemen yang berturutan. Walau bagaimanapun, menambah pemisah selepas elemen terakhir boleh menjadi tidak diingini.

Pendekatan Tradisional untuk Lelaran Tidak Memusnahkan

Apabila melelaran pada tatasusunan dengan gaya C untuk gelung, atau menggunakan lelaran tidak merosakkan untuk urutan saiz yang tidak diketahui, selongsong khas elemen terakhir boleh menghalang pemisah tambahan:

<code class="cpp">for (const auto& item : items) {
    cout << item;
    if (std::next(it) != items.cend()) {  // Not the last element
        cout << separator;
    }
}</code>
Salin selepas log masuk

Penyelesaian Lebih Elegan Menggunakan C 11 Constructs

Daripada selongsong khas yang jelas, C 11 memperkenalkan cara yang lebih bersih untuk mencapai perkara ini:

<code class="cpp">const auto separator = "WhatYouWantHere";
const auto* sep = "";
for (const auto& item : items) {
    std::cout << sep << item;
    sep = separator;  // Only assign when not on the last element
}</code>
Salin selepas log masuk

Dalam pendekatan ini, pembolehubah penunjuk sep menjejaki sama ada pemisah telah dicetak lagi. Apabila menemui elemen pertama, sep kosong, jadi tiada apa yang dicetak. Semasa gelung diteruskan, sep diberikan nilai pemisah. Untuk semua elemen seterusnya, pemisah dicetak sebelum elemen.

Atas ialah kandungan terperinci Bagaimana untuk Mengelakkan Pemisah Luaran dalam Gelung Lelaran: Penyelesaian A C 11?. 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan