C++Tingkat: Lanjutan7 min

Move Semantics, R-value References (&&) & std::move

Eliminasi duplikasi alokasi memori berbiaya mahal (deep copies) dengan memindahkan hak kepemilikan resource menggunakan R-value References (&&).

Perbedaan Deep Copy vs Move Semantics

Pratinjau Terbuka

Sebelum C++11, mengembalikan objek besar (seperti vector atau string) selalu menduplikasi seluruh memori di heap. Move semantics mengalihkan pointer buffer internal dari objek lama ke objek baru dalam waktu O(1).

Contoh Kode Sintaks
#include <iostream>
#include <vector>
#include <utility>

int main() {
    std::vector<int> dataBesar = {1, 2, 3, 4, 5, 6, 7, 8};

    // std::move mengubah L-value menjadi R-value reference
    // Memindahkan isi buffer memori tanpa duplikasi elemen sama sekali
    std::vector<int> wadahBaru = std::move(dataBesar);

    std::cout << "Ukuran Wadah Baru : " << wadahBaru.size() << std::endl;
    std::cout << "Ukuran Data Lama  : " << dataBesar.size() << " (Resource Dipindahkan)" << std::endl;
    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