std::vector erase 没有清除对象的问题
2017-11-05 20:22
483 查看
//vector 存储对象的时候删除后释放内存,存储对象指针的时候删除后并不释放内存
#include <iostream> #include <vector> using namespace std; class Test { public: Test(int i) ; ~Test() ; private: int id; }; Test::Test(int i) { id = i; printf("%d construct\n",i); } Test::~Test() { printf("%d destruct\n",id); } int main() { vector<Test> vec1; for (int i = 0; i < 3; i++)vec1.push_back( Test(i)); printf("before erase\n"); vec1.clear(); printf("after erase\n\n"); vector<Test*> vec2; for (int i = 0; i < 3; i++)vec2.push_back(new Test(i)); printf("before erase\n"); vec2.clear(); printf("after erase\n\n"); vector<Test*> vec3; for (int i = 0; i < 3; i++)vec3.push_back(new Test(i)); for (int i = 0; i < 3; i++)delete vec3[i]; printf("before erase\n"); vec3.clear(); printf("after erase\n\n"); system("pause"); return 0; }
相关文章推荐
- std::vector的erase的问题
- DLL中传递STL参数,vector对象作为dll参数传递等问题(转) (坑死我了)
- 由于错误 0xC0011008“从 XML 加载时出错。没有关于此问题的更详细错误信息,因为没有传递可存储详细错误信息的 Events 对象。”,无法加载包。
- vector::erase()方法的详细介绍及问题解答 (2010-04-20 09:09:11) http://bbs.csdn.net/topics/390902650?page=1
- 读一组整数到vector对象,计算并输入每对相邻元素的和,如果读入元素个数为奇数,则提示用户最后一个元素没有求和,并输出其值。
- DLL中传递STL参数,vector对象作为dll参数传递等问题
- std::set, std::list, std::vector在erase的区别
- vector :: erase 出错问题
- “vector”: 不是“std”的成员 问题解决
- vector::erase()方法的详细介绍及问题解答
- vector中清除某个元素方法(erase)
- xcode替换同名图片后,显示的还是旧图片。各种清除缓存都没有解决问题
- 『C++ Primer学习笔记』Chapter 3——string对象、vector对象以及数组的配套类型,C风格字符串问题和处理区别
- Eclipse:”在对象后输入下点没有提示“问题的修正
- c++ 中关于没有默认构造函数的成员类对象问题
- vector::erase()方法的详细介绍及问题解答
- opencv Mat存储在std::vector 时要注意的问题
- vector::erase()方法的详细介绍及问题解答
- 在没有对象的情况下使用decltype和sizeof问题的解决方案
- std::vector中erase的用法误区