我正在编写模板列表地图(使用链表而不是红黑树/ 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(); }
....
};
所以我们这里有一个node
和iterator
。程序应该读取包含以下行的文件,
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
中的函数?还是有更好的方法?