如何在课堂上释放一组内存<int>?
How to release the memory a set<int> in class?
假设我有一个结构:
struct Foo {
std::set<int> nodes;
};
Foo foo;
在foo
的nodes
中插入一些元素后,我想释放nodes
所拥有的内存,我从std::vector memory在清除后是否释放得到了一些启发?
Can
std::set<int>().swap(foo.nodes)
是否正确释放内存?
我的问题与如何从集合中释放内存不同。由于int
是内置类型,我们不能将其作为指针删除,这在如何从集合中释放内存时需要考虑。
顺便说一下,clear()
不会释放内存。
foo.nodes.clear();
将清除set
。但请注意,C++运行时可能不会立即将内存释放回操作系统,因此可能很难衡量对内存消耗的影响。
std::set<int>().swap(foo.nodes);
将获得类似的结果,但它确实受到创建匿名临时的开销的影响。
相关文章:
- 在 c++ 中拥有一组结构的正确方法是什么?
- 有哪些有效的方法可以消除一组 100 万个字符串>重复数据?
- 程序以使用 C++ 中的 while 循环查找一组数字的最小值
- 一组值的零开销下标运算符
- 使用一组结构,避免在一组结构中出现重复的结构
- CMake:我们可以为一组不形成可执行文件或库的特定文件指定包含目录吗?
- 合并一组模板专用化
- 如何更好地检查两个 char 变量是否在一组值中?
- C++有没有办法强制重写一组方法,如果其中一个方法在子类中具有重写?
- 给定一个枢轴点,按照它们与枢轴点构成的角度递增顺序对一组点进行排序
- 销毁C++中动态分配的内存(数组对象)
- 如何从一组变量中查找最低值
- 如何根据对的第二个元素对 STL c++ 中的一组对进行排序?
- 如何通过查找迭代器结果分配给一组对的元素
- 使用一个内存集数组和单个堆栈在 O(n) 中查找数组的下一个更大元素
- 读取一组用户输入,按升序排序,然后打印结果
- 如何从一组具有从左到右优先级的整数值创建有序整数键?
- 每次需要其中一个类的实例时,是否具有一组类的额外副本或从文件中读取更多内存
- 一次只实例化一组类中的一个类,以节省内存
- 如何在课堂上释放一组内存<int>?