65,186
社区成员




int main()
{
vector<string> vctStr;
vctStr.push_back("aaa");
vctStr.push_back("bbb");
vctStr.push_back("ccc");
class MyFun
{
public:
MyFun(){printf("constru\n");};
~MyFun(){printf("del\n");};
void operator()(string str)
{
printf("%s\n", str.c_str());
vctStr2.push_back(str + "1");
printf("%d\n", vctStr2.size());
}
vector<string> vctStr2;
int gsize(){return vctStr2.size();};
};
MyFun tempFun;
for_each(vctStr.begin(), vctStr.end(), tempFun);
printf("%d\n", tempFun.vctStr2.size());
printf("%d\n", tempFun.gsize());
return 0;
}
不明白为什么会有三次析构函数调用,构造函数调用只有一次呀??