And*_*dry 7 c++ containers return
我正在开发一个类,它充当另一个类的容器.在容器类中,我必须实现一个方法来获取集合中的所有元素.我的容器类使用std :: deque.
我应该返回对双端队列的引用吗?我应该寄回一副双端队列吗?(我的上帝告诉我这不是答案...... :))我应该返回一个数组吗?......在这种情况下,最佳做法是什么?谢谢
最好的做法是使用迭代器设计模式并返回迭代器
就你的特定例子而言,我会做这样的事情:
class myContainer
{
public:
typedef std::deque<X> actual_container_type;
typedef actual_container_type::iterator iterator;
typedef actual_container_type::const_iterator const_iterator;
//etc...
iterator begin() {return cont.begin(); }
const_iterator begin() const {return cont.begin(); }
iterator end() {return cont.end(); }
const_iterator end() const {return cont.end(); }
//you may choose to also provide push_front and push_back... or whatever :)
private:
actual_container_type cont;
}
Run Code Online (Sandbox Code Playgroud)