关联容器按键,键和值排序

时间:2012-08-29 03:14:41

标签: c++ algorithm data-structures

是否有任何关键容器按键和值排序?我想在C ++中使用这个数据结构。在Java中,有方法containsKeycontainsValue。在最短的时间内,我需要两种方式(containsKeycontainsValue)的关联数据结构的迭代器。它必须几乎接近log(n)。

2 个答案:

答案 0 :(得分:1)

您所描述的内容听起来很像Boost.Bimap容器框架,它允许您构建双向映射,让您可以同等有效地查找键和值。这可能不是您正在寻找的,但该库经过了充分测试,可能是一个很好的起点。

希望这有帮助!

答案 1 :(得分:0)

可能您想要给定T2的所有T1,反之亦然。这不完全是你所说的,但如果这就是你想要的那样,那么就应该开始改进.bimap。

std :: set< std :: pair< Tkey,Tvalue> >会以一种基本的方式做你想做的事。辅助std :: set< Tkey>和std :: set< Tvalue>在O(log(n))中给出全局contains_key和contains_value,如果这是你想要的。

std :: map< Tkey,std :: set< Tvalue> >为您提供方便的O(log(n))访问键值的方便。维护反向副本为您提供方便的O(log(n))访问键的键。

这实际上取决于你想做什么,以及数据是一组任意的键,值对还是以某种方式限制。