很正常
C3(1,"ss")
是构造了一个main函数栈上的匿名临时变量,这个自然需要一个调用构造函数
然后 push_back的时候,vector需要把这个匿名变量的值复制到vector的存储空间上,由于是值copy,所以必须有一次copy constructor
在C++11里引入了 std::move 可以解决这个问题
参考 关于C++右值及std::move()的疑问? - C++ - 知乎
第二次 Copy Constructor应该是 vector在扩容产生的复制,你可以在开始先把 vector reserve一个较大的值 再试试看
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2025 tinynews.org All Rights Reserved. 百科问答小站 版权所有