我需要描述一个可在其中搜索的关联数组,您可以使用键和值。使用函数add,delete,getBy1st(按键搜索),getBy2nd(按值搜索)。 例如在C ++中:
symmap<std::string, int> m;
m.insert(make_pair<std::string,int> ("hello", 1));
m.insert(make_pair<std::string,int> ("wow", 2));
...
m.getBy1st("hello"); // returns 1
m.getBy2nd(2);// returns "wow"
它应该适用于O(log(n))并存储在std :: pair中。 我无法确定用于存储的数据结构。 也许我可以使用rb-tree的一些变体来存储它?