-
-
[旧帖]
[原创]STL代码报错,求解释!
0.00雪花
-
发表于:
2013-11-20 14:03
2232
-
[旧帖] [原创]STL代码报错,求解释!
0.00雪花
#include "stdafx.h"
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
template<class type>
class Print
{
char *mpBuffer;
public:
Print()
{
mpBuffer = new char;
cout<<"Start:"<<endl;
}
~Print()
{
delete mpBuffer;
cout<<"End"<<endl;
}
void operator()(const type& Elem)
{
cout<<Elem<<endl;
}
};
int _tmain(int argc, _TCHAR* argv[])
{
int ia[6] = {0, 1, 2, 3, 4, 5};
vector<int> iv(ia, ia+5);
//Print<int>();
for_each(iv.begin(), iv.end(), Print<int>());
return 0;
}
其中,初始化了一次Print<int>对象,但是却析构了三次。在第二次delete内存的时候报错,求解释!为什么会析构三次?难道是STL库的Bug?
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课