C++中的原始指针管理

Ste*_*eng 1 c++ linux

我有一个性能关键代码.类和对象相当大,因此,它将作为指针存储在STL容器中.当指向对象的指针需要基于某些逻辑存储在多个不同的容器中时出现问题.处理对象的所有权非常麻烦,因为我无法将对象的所有权隔离到单个容器(我可以从单个容器中删除).除了使用智能指针(因为它是性能关键和智能指针可能会影响性能),我该怎么办?

谢谢.

Arm*_*yan 5

你要求的是不可能 - 从某一点来说,你要求的是卓越的性能,这样你所声称的智能指针无法提供,而你也恰好要求安全和整洁.好吧,实际上,一个是以另一个为代价的.当然,您可以尝试编写自己的共享指针,它比boost更轻,但仍然提供基本功能.顺便说一句,你真的尝试过 boost :: shared_ptr吗?它真的会降低性能吗?

  • 关于`shared_ptr`的一点是:最好使用`make_shared`来构建它,它的效率要高得多. (2认同)