Saya berlatih menggunakan objek tidak berubah dalam C ++. Tujuan pribadi saya mewakili grafik objek generik (dalam tumpukan) dengan urutan grafik yang tidak berubah.
Membangun grafik multi-versi itu sendiri tidak terlalu sulit. Masalahnya adalah kinerja. Versi brute-force membutuhkan salinan grafik lengkap, dan ini tidak dapat diterima.
Saya mencoba berbagi node yang tidak berubah. Tetapi dalam kasus ini, saya mendapat masalah baru; referensi. Referensi ke objek lain harus diperbarui dalam grafik keseluruhan. Ini perlu mengunjungi semua node untuk setiap kali saya mendapatkan versi grafik baru. Dan ini bermutasi node dengan referensi, sehingga mereka juga harus diturunkan (dengan menyalin). Performa tidak akan lebih baik daripada menyalin dengan kasar.
Sejauh yang dapat saya bayangkan, tidak ada cara yang sangat efisien untuk mewakili mutasi grafik objek dengan keadaan tidak berubah. Jadi saya meminta ide tentang ini.
Apakah mungkin untuk merepresentasikan mutasi grafik objek secara efisien dengan keadaan tidak berubah?