gpt4 book ai didi

c++ - 调整容器大小时的奇怪行为

转载 作者:可可西里 更新时间:2023-11-01 15:52:05 25 4
gpt4 key购买 nike

<分区>

当调整 vector 大小时,它会调用构造函数然后销毁它。

struct CAT
{
CAT(){cout<<"CAT()"<<endl;}
CAT(const CAT& c){cout<<"CAT(const CAT& c)"<<endl;};
~CAT(){cout<<"~CAT()"<<endl;};
};
int main()
{
vector<CAT> vc(6);
cout<<"-----------------"<<endl;
vc.resize(3);
cout<<"-----------------"<<endl;

}

输出:

$./m 
CAT()
CAT(const CAT& c)
CAT(const CAT& c)
CAT(const CAT& c)
CAT(const CAT& c)
CAT(const CAT& c)
CAT(const CAT& c)
~CAT()
-----------------
CAT() //why resize will call constructor?
~CAT()
~CAT()
~CAT()
~CAT()
-----------------
~CAT()
~CAT()
~CAT()

我使用的是 ubuntu 13.10 和 gcc4.8

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com