class MyContainedClass {
};

class MyClass {
public:
  MyContainedClass * getElement() {
    // ...
    std::list<MyContainedClass>::iterator it = ... // retrieve somehow
    return &(*it);
  }
  // other methods
private:
  std::list<MyContainedClass> m_contained;
};

尽管msdn表示std::list不应在删除或插入时执行元素的重定位,但这是将指针返回列表元素的一种好方法吗?

PS:我知道我可以使用指针集合(并且必须使用析构函数中的delete元素),共享指针集合(我不喜欢)等。

最佳答案

我看不到使用这种封装,但这可能只是我自己。无论如何,返回引用而不是指针对我来说意义更大。

08-19 15:58