Teknologi pengurusan memori automatik dalam C++ digunakan untuk memperuntukkan dan melepaskan memori secara automatik, termasuk: petunjuk pintar: std::shared_ptr: penunjuk pemilikan dikongsi, melepaskan memori secara automatik. std::unique_ptr: Penunjuk pemilikan eksklusif, memori dikeluarkan secara automatik selepas pembolehubah keluar dari skop. Bekas: std::vector: tatasusunan diubah saiz secara dinamik, secara automatik melepaskan elemen apabila berada di luar julat. std::map: Bekas bersekutu, secara automatik mengeluarkan semua pasangan nilai kunci apabila di luar skop.
Pengenalan
Pengurusan memori adalah penting dalam C++. Teknologi pengurusan memori automatik membolehkan pengaturcara memperuntukkan dan membebaskan memori tanpa membebaskannya secara manual.
Penunjuk pintar
Bekas
Kes praktikal
Gunakan std::shared_ptr untuk menguruskan objek:
#include <memory> class MyClass { /* ... */ }; int main() { std::shared_ptr<MyClass> ptr1(new MyClass()); std::shared_ptr<MyClass> ptr2 = ptr1; // 共享所有权 ptr1.reset(); // 设置 ptr1 为 nullptr,减少引用计数 if (ptr2) { // 检查 ptr2 是否有效 // 可以访问 MyClass 的内容 } return 0; }
Gunakan std::unique_ptr untuk mengurus sumber:
#include <memory> class Resource { /* ... */ }; int main() { std::unique_ptr<Resource> res(new Resource()); // 使用 res // 变量 res 超出范围时,Resource 对象将自动释放 }
#include <vector> int main() { std::vector<int> numbers; numbers.push_back(1); numbers.push_back(2); numbers.push_back(3); // 访问 vector 中的元素 // 当 vector 超出范围时,所有元素都会自动释放 }
Atas ialah kandungan terperinci Teknologi pengurusan memori automatik dalam pengurusan memori C++. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!