C ++ - 实现模板ListMap时的一种好方法

时间:2016-02-09 20:26:11

标签: c++

我正在编写模板列表地图(使用链表而不是红黑树/ BST)。 listmap定义为

template <typename Key, typename Value, class Less=xless<Key>>
class listmap {
private:
   Less less;
   struct node;
public:
   class iterator;
   iterator insert (const value_type&);
   iterator insertinEmpty (const value_type&);
   iterator find (const key_type&) const;
   iterator erase (iterator position);
   iterator begin() { return anchor()->next; }
   iterator end() { return anchor(); }
   bool empty() const { return   const_cast<listmap*>(this) -> begin() 
                          ==    const_cast<listmap*>(this) -> end(); }     
   ....
};

所以我们这里有一个nodeiterator。程序应该读取包含以下行的文件,

key = value      //assign or insert
key =            //list all pairs with the same key
    = value      //list all pairs with the same value
    =            //list all pairs

我想知道如何实现main.cpp。在

中编写带有对的列表映射是否合适?
("assign",    fn_assign)
("listKey",   fn_listKey)
("listVal",   fn_listVal)
("listAll",   fn_listAll)

然后相应地调用listmap中的函数?还是有更好的方法?

0 个答案:

没有答案