C++Tingkat: Menengah7 min
Modern Lambdas & Capture Clauses ([=], [&], mutable)
Pelajari fungsi anonim lambda pada C++ modern: klausa penangkapan variabel konteks (capture clauses), spesifikasi parameter, kata kunci mutable, dan penggunaannya dalam algoritma STL.
Sintaks Lambda & Penangkapan Konteks
Pratinjau TerbukaEkspresi lambda di C++ memiliki format dasar [captures](params) -> return_type { body }. Capture clause menentukan bagaimana variabel lokal dari luar fungsi dapat diakses oleh lambda.
Poin Penting:
[=] menangkap seluruh variabel lokal di luar lambda berdasarkan salinan nilai (by value).
[&] menangkap seluruh variabel lokal berdasarkan referensi memori asli (by reference).
mutable memungkinkan modifikasi variabel yang ditangkap by-value di dalam badan lambda.
Contoh Kode Sintaks
#include <iostream>
#include <vector>
#include <algorithm>
int main() {
int faktor = 3;
std::vector<int> angka = { 1, 2, 3, 4, 5 };
// Lambda menangkap 'faktor' by value
std::for_each(angka.begin(), angka.end(), [faktor](int n) {
std::cout << n << " x " << faktor << " = " << n * faktor << std::endl;
});
// Lambda dengan mutable untuk akumulator internal
int hitung = 0;
auto penghitung = [&hitung]() mutable {
hitung++;
std::cout << "Panggilan ke-" << hitung << std::endl;
};
penghitung();
penghitung();
return 0;
}Live Compiler Runner
Akses Kursus Wajib Login
Buka Akses Penuh Silabus & Praktikum
Masuk dengan akun GitHub, Google, atau Akses Cepat Developer untuk membuka seluruh materi mendalam, menjalankan compiler interaktif, mengerjakan kuis, dan menyimpan progres belajar Anda.
145+ Modul Lengkap•Tersimpan Otomatis•Sertifikat Kelulusan Resmi