问题标签 [bimap]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Java:实例化 Google Collection 的 HashBiMap
我正在使用 Eclipse,并且已将其添加google-collect.1.0-rc2.jar
为引用库。然而不知何故,这仍然行不通:
Eclipse 给出以下错误:
此行有多个标记
- HashBiMap 无法解析
- Character.Integer 无法解析
- 标记“,”,“。”的语法错误 预期的
- 标记 "." 的语法错误,删除此标记
- 类 Odp 的方法 create() 未定义
我究竟做错了什么?
其他谷歌的东西,比如 Joiner,工作正常。(但 Joiner 不是通用的。)
java - 在 Java 中实例化 google-collections 的 BiMap
你怎么能实例化一个Bimap
谷歌集合?
我读过问题Java: Instantiate Google Collection's HashBiMap
我的代码示例
我明白了cannot instantiate the type BiMap<String, Integer>
。
c++ - 在 C++ 中使用 Boost Bimap
C++ Boost有一个双向映射的Bimap容器:http: //www.boost.org/doc/libs/1_43_0/libs/bimap/doc/html/index.html
有谁知道 Boost::bimap 的性能?我的意思是访问地图中的元素的时间复杂度是多少?它是否与 unordered_map 访问一样快(即 O(1))?
谢谢!
c++ - 任何可用的实现,如 Loki 的 AssocVector,但具有 Boost 的 Bimap 功能?
我想知道是否有人知道任何库代码具有 Loki 的 AssocVector 提供的性能特征(元素的引用位置,与地图相比,每个元素的内存开销更低)但具有 Boost 的 BiMap 功能(能够从关系的双方)?
还是使用 std::pairs 的排序 std::vector 并添加功能以使用对的任一元素作为键来查找向量是前进的方向?
c++ - 用 Boost.Bimap 替换向量和哈希表
我正在寻找将 avector<string>
和一个boost::unordered_map<string, size_t>
映射字符串替换为前者中的索引boost::bimap
。
我应该使用什么实例化bimap
?到目前为止,我想出了
但我不确定我现在是否已经反转了集合类型。另外,我想知道是否应该更改关系类型的集合。avector_of_relation
是我最好的选择,还是 a set_of_relation
,或者只是使用默认值?
java - 代表两个或多个因素之间的直接或反向关系的最佳 Guava (Google) 集合 API 是什么?
BiMap 确实有逆方法,但我不确定它是否是解决问题的正确集合。有人可以建议替代方法或收集/方法吗?一个例子会很有帮助。
提前致谢。普拉卡什
c++ - c++11 中是否有 Boost.Bimap 替代方案?
在 C++0x 中是否有 Boost 的 bimap 的可用替代品?
我想避免 Boost,但完全接受 C++11。如有必要,Boost 的 bimap 的精简版本将适用于我的整个程序(我需要一个常量 bimap 来在枚举和相应的字符串之间切换)。该地图将是编译时常数,因此即使是两个手动维护的地图也不是最佳解决方案。
谢谢!
更新:我在代码项目中找到了这个,但似乎许可可能是一个问题:http ://www.codeproject.com/KB/stl/bimap.aspx?fid=12042&df=90&mpp=25&noise=3&sort=Position&view=Quick&fr =151#xx0xx
我只是在寻找一个干净且简单的解决方案(一个头文件/源文件或一些额外的文件,因为在我的情况下,两个镜像映射同样适用)。
c++11 - 可变类型定义,或“Bimaps 以 C++0x 方式完成”
简短的问题:我可以键入定义可变参数包吗?我需要template <typename ...T> struct Forward { typedef T... args; };
。
长版:
我正在考虑在 C++0x 中重新实现出色的boost bimap 。回想一下,两种类型的 bimapS
和T
是和之间std::set
的关系。对象本身存储在两个独立的内部容器中,我想这些关系跟踪关联的迭代器;这两种类型都可以通过“左”和“右”查找作为键。根据内部容器的选择,值可能是唯一的,也可能不是唯一的,例如,如果左容器是一个集合,而右容器是一个多重集合,那么可以映射到许多不同的 s,而右查找给出一个相等的范围。流行的内部容器是、和,也许还有S x
T y
x
y
set
multiset
vector
list
unordered_*
版本也是。
所以我们需要一个接受两个容器作为模板参数的类型:
但我们必须接受容器可以接受任意多个参数,因此我们也需要传递所有这些参数。如果我们只需要一组可变参数,那不是问题,因为我们可以直接传递它们。但是现在我们需要两组参数,所以我想写一个转发器,像这样使用:
这是我想出的模板:
不幸的是,在指示的行中,Forward
我无法弄清楚如何 typedef 参数包!(注释行给出编译器错误。)
[我想我可以选择一个惰性版本并通过andBimap<std::set<int, MyPred>, std::multiset<char, YourPred>> x;
提取类型,但我认为如果我可以将键类型作为我的主要模板参数并允许默认为容器会更好。]LeftCont::value_type
RightCont::value_type
std::set
c++ - 使用带有 boost::bimap 的自定义分配器
我正在努力提高同时使用 Boost Graph Library 和boost::bimap
. 分析表明,大部分时间都花在了内存分配和释放上。使adjacency_list
图形库的类使用boost::fast_pool_allocator
显着提高了性能。大部分剩余内存分配发生在 中boost::bimap
,所以我也想尝试在那里使用自定义分配器。文档说您可以将分配器指定为 bimap 的最后一个模板参数,但它没有说明分配器本身的模板参数应该是什么类型。例如,对于类型X
和Y
,在
应该填写什么Z
?
boost - 如何按值遍历地图
假设有一张地图:typedef map<int, string> MyMap;
我想通过字符串遍历它,例如:
一种方法是按其值对该地图进行排序。但我担心这会对 find() 效率产生影响(是真的吗?)
另一种选择是使用boost::bimap
. 但是,您可能会注意到,MyMap 中的值不是唯一的,因此 bimap 在这里不适用。
有什么好的方法吗?