C 中的自動記憶體管理技術用於自動分配和釋放內存,包括:智慧指標:std::shared_ptr:共享所有權指針,自動釋放記憶體。 std::unique_ptr:獨佔所有權指針,變數超出範圍後自動釋放記憶體。容器:std::vector:動態調整大小的數組,超出範圍時自動釋放元素。 std::map:關聯容器,超出範圍時自動釋放所有鍵值對。
#簡介
記憶體管理在 C 中至關重要。自動記憶體管理技術使程式設計師能夠在不手動釋放的情況下分配和釋放記憶體。
智慧指標
容器
實戰案例
使用std::shared_ptr 管理物件:
#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; }
使用std::unique_ptr 管理資源:
#include <memory> class Resource { /* ... */ }; int main() { std::unique_ptr<Resource> res(new Resource()); // 使用 res // 变量 res 超出范围时,Resource 对象将自动释放 }
使用std::vector 儲存物件:
#include <vector> int main() { std::vector<int> numbers; numbers.push_back(1); numbers.push_back(2); numbers.push_back(3); // 访问 vector 中的元素 // 当 vector 超出范围时,所有元素都会自动释放 }
以上是C++記憶體管理中的自動記憶體管理技術的詳細內容。更多資訊請關注PHP中文網其他相關文章!