问题标签 [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.
c++ - 是否可以覆盖 boost::bimaps::bimap.left 的“查找”和“擦除”方法?怎么做?
我有以下内容:
我希望能够像这样调用查找和擦除方法:
instance.left.find("foo")
代替instance.left.find({"foo",1})
和
instance.left.erase("foo")
代替instance.left.erase({"foo",1})
.
我只想使用“foo_and_number_helper”的“foo”部分,而不是从左侧调用的方法查找和擦除的两个部分。如何做到这一点?我试图阅读 bimap 实现,但我仍然很难做到。
我已经问过更广泛的问题:C++ bimap 是否可能在视图的一侧具有与视图值的另一侧不同的键?怎么做?
并且从我必须覆盖的评论中operator <
,但我什至不确定这是否足够。
c++ - 使用 multiset_of 提升 bimap 查找
我对 Boost::bimap 有疑问,无法从 boost 文档中找到答案。
问题: withbi_map.right.find("value")
看起来只能获得迭代器{"message1", "value"}
,是否有可能获得两个匹配的列表[{"message1", "value"}, {"message2", "value"}]
?
java - Google Guava BiMap - 反向获取方法不起作用
我真的不喜欢在这里问,但是这次我已经搜索过,我已经阅读了文档,我已经在其他地方寻求帮助,显然没有人知道如何解决我的问题。
我将BiMap
来自 google Guava 的用于我的 java 应用程序,因为我有一种情况,我需要特定值的键(键和值都是唯一的)。在非反转视图中,键是 a long
,值是一个自己的类(它也实现了hashCode
and equals
)。
现在,我有一个特定的条目,我只知道它的值(但是,我知道这个条目存在,我做了一些检查,你也可以在下面看到)。但是,如果我反转映射并将已知值用作键,则返回的值始终为null
. 为了确保问题出在这个特定点,我对一些调试行进行了硬编码:https ://hastebin.com/gisojogune.cs
(不幸的是,我无法将其粘贴到其他地方,因为我在移动自动取款机上)
如果有人能帮助我,我会很高兴,因为我必须在明天之前完成这个。耶。
谢谢,约翰尼
编辑:在链接中,另一个Map
应该被称为requests
. 别介意。
c++ - 用于映射一对一关系的 STL 类型?
在考虑我的代码关于一对一关系的设计决策时,我开始考虑是否应该使用std::vector<std::pair<T1, T2>>
而不是std::map<T1, T2>
,并自己实现两种方法 A 到 B 和 B 到 A。
我不能使用 boost,所以我找到的这个问题的答案(STL 术语中的一对一关系)并不合适。
是否有一些 STL 等价物做这项工作?或者你认为向量是一个坏主意?结构(< 10)中不会有很多条目,但会有很多访问权限。
java - 是否有具有 2 个索引 / 一个键键数据结构的数据结构?
Java(java util,guava ...)中是否有允许我存储也可以解释为值键的“键值”对的数据结构?
例子:
像这样的函数d.get1(1)
应该返回foo
。像这样的函数d.get2("foo")
应该返回1
。
像这样的函数d.get1(33)
应该返回hello
。像这样的函数d.get2("hello")
应该返回33
。
...
有没有像这样工作的东西?
c++ - C++ boost::bimap insert() 方法不起作用
我正在尝试在 boost::bimap 中插入数据,但出现错误。
错误::
java - 如何将字符串与字符串数组进行比较以从地图中获取值?
我有一个 BiMap,其中一个字符串作为键,一个字符串数组作为值。现在我正在尝试使用单个字符串(它是值数组的一部分)来获取密钥。
在下一个方法中,我试图用“CH”搜索以获得“000”(这不起作用)。
有没有办法像这样“找到”密钥,没有我需要用这样的数组搜索:String[] find = new String[] {"CH", "CHE", "Switzerland"};
所有的值和键都是唯一的,因此预计只有一个结果。我总是在寻找数组中的第一个值,f.ex。“中国”或“美国”。
c++ - 有没有办法强制 a (multiset_of,multiset_of) boost::bimap 是独一无二的吗?
我有一个多集 Bimap,如下所示:
element = 左键 + 右键,或者上面块中的一行
我想删除行与另一行等效的元素,例如,我想删除 6 <--> 71 中的两个。本质上,每个 bimap 元素必须是唯一的。对于我的用例,左右键必须是多组。我也想做这篇创建 bimap 的帖子。是否有一个要求每个元素都是唯一的内置函数?如果不是这种情况,有没有人知道这样做的好方法?
我使用的最小代码如下:
java - Guava biMap 用于双向映射,但我们有线程安全的双向映射吗?
Guava biMap 用于双向映射,但我们有线程安全的双向映射吗?
c++ - boost::bimap 在使用自定义结构作为键时发现错误的条目,为什么?
我有一个自定义结构,我使用 boost::bimap 映射到一些数据。不幸的是,bimap find() 没有按预期工作。下面是一个演示的最小示例:
最后两个断言失败(gdb 显示 res1_s == s0)。我怀疑 operator< 的实现没有按预期工作。据我了解std :: tie,它应该只是按字典顺序比较两个操作数,并且足以使用任意结构作为映射的键。
谢谢你的帮助。