STL问题,为什么单独调用了两次析构函数???????代码如下:

lovec 2001-12-29 09:49:59
#include<iostream.h>
#include<stl.h>
#include<vector.h>

class day {
int dayCount;
public:
day(int daycount=30):dayCount(daycount) {
cout<<"day constructor!!!!!\n";
}
friend ostream& operator << (ostream& os,const day& d) {
return os<<d.dayCount;
}
~day() {
cout<<"day destroy construtor!!!!!\n";
}
};

int main()
{

vector<day> mon;

mon.push_back(day(31));
mon.push_back(day(30));

cout<<mon[0]<<endl;
cout<<mon[1]<<endl;
mon.erase(mon.begin(),mon.end());

}
...全文
288 7 打赏 收藏 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
lovec 2001-12-30
  • 打赏
  • 举报
回复
感谢tangtao(skywalker)kingbird(快乐鸟) Solstice(大佛) 
问题其实我已经解决:)
陈硕 2001-12-29
  • 打赏
  • 举报
回复
tangtao说的是对的,
注意区别copy constructor与default constructor
即:
mon.push_back(day(11));
与
mon.push_back();
的区别。
somat 2001-12-29
  • 打赏
  • 举报
回复
对啊,为什么???
tangtao 2001-12-29
  • 打赏
  • 举报
回复
你再把copy construtor重载了试试!
lovec 2001-12-29
  • 打赏
  • 举报
回复
楼上的:)
是应该调用两次,可是一般来说构造,析构是成对的,这种现象如何解释呢?
cber 2001-12-29
  • 打赏
  • 举报
回复
为什么不调用两次析构函数呢?
kingbird 2001-12-29
  • 打赏
  • 举报
回复
你把拷贝函数定义了,就能理解个问题了。
day(const day &Temp)
{
cout << "copy constructor!!!\n";
dayCount = Temp.dayCount;
}
内容概要:本文围绕“基于周期增强时序预测与帕累托多目标优化的建筑群储能鲁棒调度策略”开展研究,提出了一种融合高精度预测与多目标优化的综合调度方法。首先,采用周期增强的时序预测技术对建筑群的电力负荷与可再生能源出力进行精准建模,充分挖掘数据的周期性特征以提升预测准确性;其次,构建基于帕累托前沿的多目标优化模型,综合考虑经济成本最低、碳排放最小化以及系统运行鲁棒性等多重目标;最后,引入鲁棒优化机制应对预测不确定性,增强调度方案在复杂动态环境下的适应能力与稳定性。研究通过Python编程实现了完整的算法流程,涵盖数据预处理、模型构建、优化求解与结果分析,适用于建筑群或园区级综合能源系统的协同优化调度。; 适合人群:具备一定电力系统基础知识、优化算法理论及Python编程能力的研究生、科研人员和工程技术人员,尤其适合从事综合能源系统、智能电网、储能调度与低碳运行等领域的研究人员。; 使用场景及目标:①应用于园区级或多建筑群能源系统,实现经济性与低碳化协同优化调度;②解决可再生能源波动性和负荷不确定性带来的调度风险,提升系统鲁棒性;③为相关科研提供一套可复现、可扩展的周期性预测与多目标鲁棒优化集成技术框架; 阅读建议:建议结合文中提供的Python代码进行实践操作,重点理解周期增强预测模块的设计逻辑与帕累托最优解集的求解过程,可通过更换实际数据集、调整权重策略或引入新约束条件进行拓展研究,从而深化对鲁棒调度机制与多目标权衡关系的理解与应用能力。

70,040

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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