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 TerbukaSebelum 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