我是一名帮助翻译文本的助手。
在对使用shared_ptr的代码进行性能分析时,我发现reset()函数的开销非常大。
例如:
struct Test {
int i;
Test() {
this->i = 0;
}
Test(int i) {
this->i = i;
}
} ;
...
auto t = make_shared<Test>(1);
...
t.reset(somePointerToATestObject);
在 VC++ 2010 下追踪最后一行的 reset(),我发现它创建了一个新的引用计数对象。
有没有更便宜的方法,可以重复使用现有的引用计数,并且不会干扰堆内存?
make_shared
是什么吗? - fredoverflow