首页 > 解决方案 > 我应该在类中使用指向集合的指针吗?

问题描述

假设我有 A 类,我希望它有一个双端队列和一个向量。对这些集合使用指针有哪些优点和缺点?

class A 
{
  unique_ptr<deque<t>> a;
  deque<t>* b;
  deque<t> c;

  unique_ptr<vector<t>> x;
  vector<t>* y;
  vector<t> z;
}

我不确定我是否理解何时使用哪个,因为我很少看到用于类中集合的指针。

标签: c++

解决方案


如果您std::unique_ptr需要std::shared_ptr实际的动态资源(如果需要成为共享动态资源,则使用共享)。

如果您需要引用不属于您的对象(即您不会销毁/释放它),请使用原始指针或引用。如果您需要将指针“重新指向”到不同的对象,请使用指针而不是引用。

否则使用按值(即非动态)成员/变量。


推荐阅读