问题标签 [boost-multi-index]

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 投票
1 回答
111 浏览

c++ - Boost.MultiIndex 模板替换失败?

我正在尝试使用 boost::multi_index_container ,它似乎在某处被模板元编程魔法窒息。我收到了一个以以下结尾的大量错误转储:

/opt/local/include/boost/multi_index/hashed_index.hpp:743:9: 错误:'class boost::multi_index::detail::hashed_index, boost::hash, std::equal_to, boost::multi_index:: detail::nth_layer<1, boost::intrusive_ptr, boost::multi_index::indexed_by >, boost::multi_index::ordered_non_unique, &md::Order::px> > >, std::allocator >>, boost:: mpl::vector0, boost::multi_index::detail::hashed_unique_tag>' 没有名为 'final_delete_node_' 的成员 this->final_delete_node_(

我在 Mac OS X.8 Mountain Lion 上使用 Boost 1.53 (MacPorts)。如何获得以下代码进行编译?谢谢。

0 投票
1 回答
243 浏览

c++ - boost.multiindex 和值的地址作为键

我有一个结构:

我想将boost.multiindex与三个索引一起使用:1)user_id,2)user_name,3)user_context 对象的地址

我不知道,如何为 user_context 类型的对象的地址编写密钥规范。

谢谢。

0 投票
1 回答
459 浏览

c++ - boost multi_index_container Composite_key_compare

我正在尝试编写一个计算密集型程序。我需要 char* 作为 multi_index_container 的composite_key_compare 的比较字段。但是,它似乎不起作用。代码如下:

我确实追踪了equal_char,发现它确实在“Michael”与“Michael”的第一次比较时返回true,但我还发现equal_char没有被称为“Mike”与“Mike”的第二次比较。谁能帮我解决这个问题?我应该如何编写composite_key_compare?

0 投票
1 回答
258 浏览

c++ - boost::multi_index::composite_key_result,如何获取组成composite_key的char*?

对于以下代码:

我可以很容易地写一个比较,如下所示:

但是当我想写如下内容时:

我无法使用以下函数编写 compareLess

我不知道如何编写一些代码作为“k.value->firstName”来获取 char* 进行比较,因为该值不再是一个结构,它只是一个双精度值。那么我在哪里可以得到用于比较的字段?有类似 k.get<0>() 的东西吗?

0 投票
1 回答
1230 浏览

c++ - 根据 partial_index_search 的结果提升 multi_index_container 部分索引搜索

为了说明我的问题,我从 Boost 帮助文档的“电话簿”示例中复制了以下代码。

我可以进行如下部分搜索

但是,如果我需要计算姓氏是“White”的人数,然后继续找出有多少“White”的名字是“Dorothea”,那么最好的方法是什么?我想我可以用 pb.find(boost::make_tuple("White") 和 pb.find(boost::make_tuple("White","Dorothea")) 做两个部分查询。但我担心这是否会导致性能问题?由于第二个查询不知道第一个查询,只搜索整个容器。Boost 是否提供如下内容:

或者有没有更聪明的方法来做到这一点?不仅从方便的角度来看,而且从性能的角度来看。

0 投票
1 回答
84 浏览

c++ - 通过索引标签描述 boost multi_index 迭代器类型

使用 boost 多索引,我碰巧有以下类型的迭代器:

我想摆脱nth_index<2>类型的一部分并通过它的索引标签来引用它:

这存在吗?

0 投票
1 回答
229 浏览

c++ - 再次关于 Boost::multi_index_container,错误 c3849,绑定到 int 有什么问题?

我有以下代码,但“int age”似乎有问题,代码如下:

问题出在 '(boost::make_tuple(michael.c_str(), (const char*)second),20)' 上,它似乎不能接受 '20'。详细错误如下:

C:\boost_1_52\boost/multi_index/composite_key.hpp(381): 错误 C3849: 对类型为“int”的表达式的函数式调用将丢失所有 3 个可用运算符重载的 const 和/或 volatile 限定符 1> C:\ boost_1_52\boost/multi_index/composite_key.hpp(380) : 在编译类模板成员函数'bool boost::multi_index::detail::compare_ckey_ckey_normal::compare(const KeyCons1 &,const Value1 &,const KeyCons2 &,const Value2 & ,const CompareCons &)'

有没有办法解决这个问题?

0 投票
2 回答
848 浏览

c++ - 提升 multi_index_container 更改键 -> 容器状态不正确

假设我们有一个多索引容器:

现在的问题是我可能设置boost::multi_index::member<A, int, &A::a>错误,因为当我更改一些键时。我找不到 key = 4 的元素?

这里用错了什么?任何帮助真的很感激!

0 投票
1 回答
328 浏览

c++ - 前向声明一个 boost::multi_index_container 对象

我一直想知道如何转发声明boost::multi_index_container一段时间。

目录中有multi_index_container_fwd.hpp,ordered_index_fwd.hpp等等multi_index

他们应该从不需要知道对象细节的程序部分隐藏实现,对吧?

但是,我想不出一种multi_index_container单独使用这些 *_fwd.hpp 文件来声明 a 的方法。

我一直都包含完整的实现文件multi_index_container.hppindex.html 。

0 投票
1 回答
964 浏览

c++ - boost::multi_index 错误“模板参数‘x’无效”

所以我用 boost_multi_index 制作了某种数据库,如下所示:

它可以与 Visual Studio 2010 一起编译。

但是我想用 MinGW 将我的项目切换到 Code::Blocks,他似乎对此不太满意,这是编译日志:

我完全一无所知,因为错误并不比这更具体,而且我找不到任何相关的问题。

所以我希望有人可以在这里给我一个答案,如果需要更多信息,我会在之后编辑它。