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 Terbuka

Ekspresi 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