c++ - 如何在不导入任何库的情况下删除 vector

标签 c++ string pointers vector

vector<char*> x;

我的代码中有很多 vector 。但是,我需要删除它们以尽量减少内存使用。我知道有一个解决方案,比如使用“shared_array”,但我不允许导入任何其他库。有什么好的解决方案可以防止使用vector后内存泄漏吗?

最佳答案

在您的代码片段中,您使用的是 char 指针 vector 。我假设这些指针是通过 new 分配的,它们需要通过 delete 释放。如果 vector 超出范围,它将被释放,但所有这些 char 数组都不会被释放。您需要手动释放它们。

另一种方法是使用 std::string , 特别是 vector<std::string> .这样,当 vector 超出作用域时,所有的字符串都会被自动删除。

关于c++ - 如何在不导入任何库的情况下删除 vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10465509/

相关文章:

c++ - 为工厂方法使用堆栈分配而不是堆分配

c++ - 私有(private)纯虚函数有什么意义?

java - 字符串实用程序拆分 - Linux

c - 定义大小的char数组指针

C++ 为什么在 vector 段错误中放置对象?

c++ - listen() 是连续运行还是我需要循环它以继续接收套接字上的连接?

c++ - 根据持续时间C++对连续元素进行排序

java - 从数组中删除元素错误

自动计算字符串中连续字母的JavaScript函数

c++ - 指向 char 数组的指针的索引