结构体里面的内存回收问题

愤怒的菜鸟_ 2016-02-28 10:17:12
加精
定义这样一个结构体

struct dataform {
int time;
string name;
char oddeven;
double * object;
};
std::vector<dataform> CandidateQuery;

想请问这样的内存该怎么回收?
...全文
2392 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
versatts 2017-06-08
  • 打赏
  • 举报
回复
如果你的dataform里的object是New的,就写一个~dataform(),在里面delete它。
versatts 2017-06-08
  • 打赏
  • 举报
回复
CandidateQuery.clear(); 即可
kerwin liu 2017-04-06
  • 打赏
  • 举报
回复
引用 7楼赵4老师 的回复:
string是对象,不是一段内存。不适合放在结构体中。
个人觉的放里面也没关系,string在堆上开辟了一段内存
muzi_li90 2016-03-06
  • 打赏
  • 举报
回复
学习一下。。。。
trytry1992 2016-03-04
  • 打赏
  • 举报
回复
STL容器清空,去看effective STL第17条还是19条
Poopaye 2016-03-04
  • 打赏
  • 举报
回复
std::vector<dataform*> CandidateQuery;
把分全给哥 2016-03-03
  • 打赏
  • 举报
回复
引用 16 楼 qq1134993111 的回复:
使用智能指针
大神,你在说什么
HaoYuan 2016-03-03
  • 打赏
  • 举报
回复
使用智能指针
hdshappy 2016-03-02
  • 打赏
  • 举报
回复
真是太好了真是太好了
forget0915 2016-03-01
  • 打赏
  • 举报
回复
下断点进去调,看汇编代码及内存窗口,这样印象和理解深刻得多。空说概念没啥意义。
Heart09 2016-03-01
  • 打赏
  • 举报
回复
如果不写析构函数的话,只能一个一个释放。 其实析构函数只是做到了自动的一个一个释放。 就是说,你怎么new的,就怎么给delete掉!
止戈uuu 2016-03-01
  • 打赏
  • 举报
回复
循环释放掉Vector里的内存就可以了
yshuise 2016-02-29
  • 打赏
  • 举报
回复
string不是对象,而是一个typedef
愤怒的菜鸟_ 2016-02-29
  • 打赏
  • 举报
回复
引用 7 楼 zhao4zhong1 的回复:
string是对象,不是一段内存。不适合放在结构体中。
好的,谢谢
愤怒的菜鸟_ 2016-02-29
  • 打赏
  • 举报
回复
引用 8 楼 starytx 的回复:
[quote=引用 5 楼 q328590076 的回复:] 我后面申请了这样一个变量
std::vector<dataform> CandidateQuery;
我就是想问怎么把CandidateQuery的内存释放掉?
vector里边的东西无需自己处理内存释放问题,除非你结构体里边的那个指针object指向了new的内存,那么要释放的话就是循环每一个vector元素,然后delete object就行了[/quote] 谢谢
starytx 2016-02-29
  • 打赏
  • 举报
回复
引用 5 楼 q328590076 的回复:
我后面申请了这样一个变量
std::vector<dataform> CandidateQuery;

我就是想问怎么把CandidateQuery的内存释放掉?
vector里边的东西无需自己处理内存释放问题,除非你结构体里边的那个指针object指向了new的内存,那么要释放的话就是循环每一个vector元素,然后delete object就行了
赵4老师 2016-02-29
  • 打赏
  • 举报
回复
string是对象,不是一段内存。不适合放在结构体中。
yshuise 2016-02-28
  • 打赏
  • 举报
回复
如果是new 那么全部for循环,delete
paschen 版主 2016-02-28
  • 打赏
  • 举报
回复
给这个结构体加上一个析构函数
yshuise 2016-02-28
  • 打赏
  • 举报
回复
你难道不知道栈是自动析构吗? 堆才是手动
加载更多回复(3)
源码链接: https://pan.quark.cn/s/a4b39357ea24 在本研究中,我们将详细研究如何借助Python执行数据可视化,旨在剖析2018年期间中国四个主要城市——北京、上海、广州以及深圳的空气质量状况。通过绘制反映空气质量指数(AQI)与细颗粒物(PM2.5)变化趋势的图表,我们能够深入理解这些大都市全年的空气环境质量,并明确评估其优良天气所占的比重。 我们必须首先进行数据准备工作。在当前提供的压缩文件内,名为"2018天气"的文件极有可能是数据来源,其中可能收录了涉及四个城市每日空气质量监测的详细信息。这些数据通常涵盖日期、城市名称、AQI数值、PM2.5含量等核心参数。在Python编程环境中,我们惯常运用pandas库来对这类结构化数据进行高效的处理和分析。 1. **数据导入与初步处理**: - 利用`pandas.read_csv()`方法来导入存储为CSV格式的数据资料。 - 数据整理:对数据中的空白项、非正常数值进行修正,保证数据的精确性。 - 调整日期字段的格式,确保其能够适用于时间序列分析的需求。 2. **数据深度分析**: - 针对每个城市的AQI和PM2.5数据执行统计性描述,例如计算平均值、中位数、标准偏差等指标。 - 确定空气质量良好天气的天数,即那些AQI值低于75(依据中国的空气质量评估标准)的日数。 3. **数据呈现**: - 运用matplotlib或seaborn工具绘制折线图,直观展示四个城市在2018年全年的AQI和PM2.5变化动态。 - 可通过采用不同的颜色方案和线条类型来区分不同城市的数据系列。 - 添加必要的图示元素,如日期坐标轴、城市名称标注、图表标题及图例说明,以提升图表的可读...

65,210

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧