vector< TextureItem > po;
TextureItem it;
TextureItem &it2 = it;
po.push_back(it);
po.push_back(it2);
我理解的最终TextureItem的析构方法走三次,但最终走了四次,it和it2是同一个对象,只会析构一个,另外两个push_back是值的传递,会被析构两次,总共三次,但实际情况为什么是4次?
vector< TextureItem > po;
TextureItem it;
TextureItem &it2 = it;
po.push_back(it);
po.push_back(it2);
我理解的最终TextureItem的析构方法走三次,但最终走了四次,it和it2是同一个对象,只会析构一个,另外两个push_back是值的传递,会被析构两次,总共三次,但实际情况为什么是4次?
因为你的vector被释放重新创建了。 所以一般要 po.reserve(10),设置容量。不然vector的效率也是个坑。