C 11 menawarkan pelbagai kaedah untuk lelaran bekas, termasuk gelung berasaskan julat dan std::for_each. Walau bagaimanapun, pendekatan manakah yang paling berkesan apabila melelakan ke atas berbilang bekas dengan saiz yang setara, seperti:
for(unsigned i = 0; i < containerA.size(); ++i) { containerA[i] = containerB[i]; }
Pendekatan yang disyorkan ialah mengulangi indeks menggunakan berasaskan julat untuk gelung:
for(unsigned i : indices(containerA)) { containerA[i] = containerB[i]; }
Di mana indeks ialah fungsi pembalut mudah yang menjana julat malas untuk indeks. Kaedah ini sepadan dengan kecekapan manual untuk gelung.
Untuk corak ini kerap berlaku, pertimbangkan untuk menggunakan fungsi zip untuk mencipta julat tupel yang menggabungkan elemen berpasangan :
for (auto& [a, b] : zip(containerA, containerB)) { a = b; }
Pendekatan ini memudahkan kod dan meningkatkan kebolehbacaan.
Atas ialah kandungan terperinci Apakah Cara Paling Cekap untuk Mengulang Berbilang Bekas Secara serentak dalam C ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!