问题标签 [boost-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.

0 投票
4 回答
6669 浏览

c++ - 如何从静态列表构造Boost bimap?

我有一个像这样的bimap:

我想从静态初始化列表构造它,因为它可以完成std::map

不幸的是,它不起作用,因为bimap不支持初始化列表,所以我尝试了一种解决方法。Boost 的文档列出了以下构造函数:

所以我尝试了第二个,像这样:

它也没有工作。文档并不清楚这个构造函数需要什么样的迭代器,但显然它不仅仅是std::pair<A, B>对象的迭代器。那么这个构造函数对这种 bimap 有什么期望呢?

0 投票
1 回答
981 浏览

c++ - 将 boost::bimap 转换为 std::map

将 bimap 转换为 std::map 的明显方法似乎不起作用。下面是正确/好的转换方式吗?有没有更好/更短的方法?

0 投票
1 回答
548 浏览

c++ - 将 unordered_set_of 与 Boost.Bimap 一起使用时出错

我正在尝试遵循文档中的这个示例(请参阅 typedef for word_counter)。

抛出的错误是

test.cpp:11:1:错误:模板参数的数量错误(1,应该是 5)在 /usr/include/boost/bimap.hpp:13:0 包含的文件中,来自 test.cpp:3:/usr /include/boost/bimap/bimap.hpp:133:7:错误:为“模板类 boost::bimaps::bimap”提供 test.cpp:11:10:错误:“;”之前的声明类型无效 令牌

0 投票
1 回答
248 浏览

c++ - 使用带有 boost::BIMAP 接口的 boost::associative 属性映射

我无法为 boost bimap 实现 boost 的关联属性映射接口。

我有一个如下的 bimap,我尝试为它定义一个 boost::associative 属性映射。我想为我的 bimap 使用 Put 和 Get 辅助函数。代码如下:

我得到一个编译错误

我知道,通过属性映射支持双映射。有关文档,请参见此处。只是想知道我将如何使用关联属性映射。如果我可以为我的关联属性映射定义左或右 bimap,那也很好。请建议。

0 投票
1 回答
744 浏览

c++ - 使用 BOOST::associative 属性映射插入 boost::BIMAP ...失败

参考我之前提出的关于 boost::bimaps 和 boost associative property maps interface here的问题,我想为我的 bimap 使用 Put 和 Get 辅助函数。

参考此处给出的示例代码,我尝试添加以下内容,但我得到一个断言失败的长编译错误......这是代码:

它给出的错误如下:(一个很长的列表。但我刚刚放了一个片段)

还有一个错误导致我在 boost 中文件 (property_map.hpp) 的第 364 行出现错误

我理解关联地图在引用左地图视图时无法改变数据的错误。但是如何使用 put 和 get 辅助函数?

我可以使用 GET (my_bimap.left, z ) 函数,但我不能使用 PUT 函数。我想使用关联属性映射来获取和放置函数来操作实际的 bimap,这样我就不必使用 insert(value_type())...

我希望我对我的问题足够清楚。请建议。

0 投票
0 回答
278 浏览

c++ - Retrieve key from a value using boost::associative property map defined over boost::bimap

Sorry for asking another question here, I should have been more clearer about my intentions for using boost::bimaps.

My key, value pairs are both unique here. so i want to fill bimap using a key, value. and retrieve a key using a value.

With reference to my code and its solution here mentioned by @sehe. Here is what I want to do with the code:

Here is my code :

the error is below :

Is there any way, I could use, Put using left associative property map and Get for right associative property maps? Put and Get functions are for generic-ness. I could use insert and etc. but I want to avoid it. @sehe, thanks for those answers previously. I should have told this problem earlier itself

0 投票
1 回答
359 浏览

c++ - 来自 boost::bimap 的各种值之间的交集

我正在尝试使用 boost::bimap 来满足我的一项要求。下面是示例代码

我想做一些事情,为约翰和彼得寻找匹配值,换句话说,约翰和彼得的值之间的交集为 ex:在这种情况下它将是(“vinicius”)。有人可以提供一些关注吗?

0 投票
1 回答
753 浏览

c++ - 如何以无序和可变的方式使用 boost::bimap?

我正在寻找一个双向无序地图。目前,我只有这个。问题是,我不能使用[]. 我认为 boost 默认为列表类型。但我想要一个哈希图。这怎么可能?

概述页面上,我发现这unordered_set_of使得 bimap 的行为类似于 hashmap。但是,一旦插入,我就无法修改值。

0 投票
0 回答
138 浏览

c++ - 使用第二种类型作为列表提升 bimap,展平右地图视图

我最近看到 boost 有一个名为 bimap 的双向映射实现。

我最初的 STL 地图使用以下两种类型:

  • int作为关键类型
  • std::weak_ptr<void>作为值类型(我们称之为X

方案 1

要创建具有这些类型的 bimap,声明将类似于

boost::bimap<int, boost::bimaps::set_of<X, std::owner_less<X>>>

因为std::weak_ptr需要一个 less 运算符(由 提供std::owner_less)并链接到boost::bimaps::set_of可用的类型(如果我理解正确的话)。

方案 2

我希望int地图中的 type 键指向 type 的多个值X

对于标准映射,将值类型从 更改Xstd::list<X>可以,如下所示: std::map<int, std::list<X>>

如何定义双向地图(或可以使用什么),以便正确的地图视图将被解释为 a map<X,int>(展平 的列表X),而正确的地图仍然是 a map<int,list<X>>

0 投票
1 回答
246 浏览

c++ - 定义成员类后重新声明是否合法?

我在编译 boost.bimap 库时遇到问题。我的测试程序是一个空白的主要功能,只有一个包含指令(如#include <boost/bimap.hpp>)。经过一番调查,我发现预处理器从头文件中做了一些有趣的构造,例如:

我不知道这是否正确,但 gcc 接受它,而 clang 和 icc 不接受。谁是对的,我该怎么做才能用 bimap 库编译程序?不幸的是,在这种情况下我不能使用 gcc。