c++ - 如何释放指针 vector 中的元素?

标签 c++ pointers vector memory-management

所以我有一个这样的指针 vector :

vector<Example*> ve;

我用这样的指针填充这个 vector

Example* e = new Example();
ve.push_back(e)

但是当我想删除它们时,我如何确保它们被释放? 够了吗?

ve.erase(ve.begin() + 1)
delete ve[1]

最佳答案

当然,你必须反过来做:

delete ve[1];
ve.erase(ve.begin() + 1);

但是,在表达所有权时,使用智能指针(例如 std::unique_ptr)比使用原始指针要好得多。

关于c++ - 如何释放指针 vector 中的元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16542623/

相关文章:

c++ - 如何使用 Qt 5.7 初始化 stdout stdin

java - JNI : javah mangles arguments that are inner classes

c - 两个以上指针的段错误(核心转储)

c++ - 指向基类数组的指针,用派生类填充

python - 如何在 scikit learn 中使用向量作为特征

c++控制台检查相邻元素是否重复

c++ - SQLite (C/C++) 的不区分大小写的 UTF-8 字符串排序规则

c - 不理解 'C' : (regs_t*) cntl->addr 中结构的引用

matlab - 将任意嵌套整数数组的结构展平为平面整数数组

c++ - 如何将 vector 的大小作为 int 获取?