小编Pkm*_*kmX的帖子

包装容器以保持一致性

我想知道包装C++ STL容器以保持一致性并且能够在不修改客户端代码的情况下交换实现是一个好主意.

例如,在一个项目中,我们使用CamelCase命名类和成员函数(Foo :: DoSomething()),我会将std :: list包装成这样的类:

template<typename T>
class List
{
    public:
        typedef std::list<T>::iterator Iterator;
        typedef std::list<T>::const_iterator ConstIterator;
        // more typedefs for other types.

        List() {}
        List(const List& rhs) : _list(rhs._list) {}
        List& operator=(const List& rhs)
        {
            _list = rhs._list;
        }

        T& Front()
        {
            return _list.front();
        }

        const T& Front() const
        {
            return _list.front();
        }

        void PushFront(const T& x)
        {
            _list.push_front(x);
        }

        void PopFront()
        {
            _list.pop_front();
        }

        // replace all other member function of std::list.

    private:
        std::list<T> _list;
}; …
Run Code Online (Sandbox Code Playgroud)

c++ containers

10
推荐指数
1
解决办法
2096
查看次数

标签 统计

c++ ×1

containers ×1