C++11 如何为我的自定义容器使用std::iterator_特性

C++11 如何为我的自定义容器使用std::iterator_特性,c++11,iterator-traits,C++11,Iterator Traits,我实施的deque具有以下结构: template<typename T, template<typename...> class Container = std::vector> class Deque { public: void push_front(const T& obj); void emplace_front(T&& obj); void push_back(const T&

我实施的deque具有以下结构:

template<typename T,
template<typename...> class Container = std::vector>
class Deque {
    public:
       void push_front(const T& obj);
       void emplace_front(T&& obj);
       void push_back(const T& obj);
       void emplace_back(T&& obj);
       auto pop_front();
       auto pop_back();
       std::size_t size() const;
       bool empty() const;
};
模板
德克级{
公众:
无效推力前(常数T和obj);
前方空洞侵位(T&obj);
无效推回(const T&obj);
空洞侵位(T&obj);
自动弹出前();
自动弹出返回();
std::size\u t size()常量;
bool empty()常量;
};
我想支持像begin()、end()、cbegin()和cend()这样的API,它们应该返回符合stl的迭代器。我听说使用std::iterator_traits可以实现这一点。在这方面的帮助提示是非常感谢的


我还希望迭代器的类型是双向的。

可能会有帮助:。在中搜索
iterator\u traits
会引发很多帖子。