问题标签 [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.
c++ - 如何从静态列表构造Boost bimap?
我有一个像这样的bimap:
我想从静态初始化列表构造它,因为它可以完成std::map
:
不幸的是,它不起作用,因为bimap
不支持初始化列表,所以我尝试了一种解决方法。Boost 的文档列出了以下构造函数:
所以我尝试了第二个,像这样:
它也没有工作。文档并不清楚这个构造函数需要什么样的迭代器,但显然它不仅仅是std::pair<A, B>
对象的迭代器。那么这个构造函数对这种 bimap 有什么期望呢?
c++ - 将 boost::bimap 转换为 std::map
将 bimap 转换为 std::map 的明显方法似乎不起作用。下面是正确/好的转换方式吗?有没有更好/更短的方法?
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:错误:“;”之前的声明类型无效 令牌
c++ - 使用带有 boost::BIMAP 接口的 boost::associative 属性映射
我无法为 boost bimap 实现 boost 的关联属性映射接口。
我有一个如下的 bimap,我尝试为它定义一个 boost::associative 属性映射。我想为我的 bimap 使用 Put 和 Get 辅助函数。代码如下:
我得到一个编译错误
我知道,通过属性映射支持双映射。有关文档,请参见此处。只是想知道我将如何使用关联属性映射。如果我可以为我的关联属性映射定义左或右 bimap,那也很好。请建议。
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())...
我希望我对我的问题足够清楚。请建议。
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
c++ - 来自 boost::bimap 的各种值之间的交集
我正在尝试使用 boost::bimap 来满足我的一项要求。下面是示例代码
我想做一些事情,为约翰和彼得寻找匹配值,换句话说,约翰和彼得的值之间的交集为 ex:在这种情况下它将是(“vinicius”)。有人可以提供一些关注吗?
c++ - 如何以无序和可变的方式使用 boost::bimap?
我正在寻找一个双向无序地图。目前,我只有这个。问题是,我不能使用[]
. 我认为 boost 默认为列表类型。但我想要一个哈希图。这怎么可能?
在概述页面上,我发现这unordered_set_of
使得 bimap 的行为类似于 hashmap。但是,一旦插入,我就无法修改值。
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
。
对于标准映射,将值类型从 更改X
为std::list<X>
可以,如下所示:
std::map<int, std::list<X>>
如何定义双向地图(或可以使用什么),以便正确的地图视图将被解释为 a map<X,int>
(展平 的列表X
),而正确的地图仍然是 a map<int,list<X>>
?
c++ - 定义成员类后重新声明是否合法?
我在编译 boost.bimap 库时遇到问题。我的测试程序是一个空白的主要功能,只有一个包含指令(如#include <boost/bimap.hpp>
)。经过一番调查,我发现预处理器从头文件中做了一些有趣的构造,例如:
我不知道这是否正确,但 gcc 接受它,而 clang 和 icc 不接受。谁是对的,我该怎么做才能用 bimap 库编译程序?不幸的是,在这种情况下我不能使用 gcc。