问题标签 [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 回答
871 浏览

c++ - 在模板类中提升模板依赖结构的多索引容器

我想要一个类中的多索引容器,这取决于类中依赖于模板的类。听起来很复杂,代码如下:

如果没有myDataContainer::begin()此代码编译的函数,但出现myDataContainer::begin()以下错误:

我错过了什么吗?这是提升中的错误还是不可能?

在此先感谢

0 投票
2 回答
426 浏览

c++ - 在一组 shared_ptr 中搜索

我有一个对象:

还有一个 multi_index 集

现在,如果我想在集合中找到一些东西,QString 我需要复制它以在堆中分配并创建shared_ptr

是否可以避免这种不必要的复制操作,保持原样?

0 投票
1 回答
467 浏览

c++ - 使用 Composite_key 和按位与比较来提升 multi_index_container

我想用 boost multi_index_container 和 composite_key 来实现这样的目标:

知道:

目标是能够执行以下操作:

这将允许我检索 LogicalAnd 返回 true 的所有元素。

问题是我无法让我的 LogicalAnd 比较器与我的 multi_index_container 一起工作。

我可以通过在composite_key_equal_to 之前添加一个composite_key_hash 来构建它:

但是find操作并没有按预期工作,所以它并没有太大变化......

我搜索了 boost 文档,并尝试了各种实现,但我被大量的信息淹没了......

任何帮助表示赞赏!

0 投票
2 回答
2630 浏览

c++ - 使用复合键、自定义比较器和部分索引搜索来提升 multi_index 容器

我有一个这样的类(简化示例):

我需要一个容器,该容器由 的唯一组合(id, label)以及(label, flag, value). 我还需要它按标签的第二个索引排序,然后是标志,如果标志为真,则减少值,如果标志为假,则增加值。所以在创建密钥提取器之后,我正在做这样的事情:

其中比较定义为:

现在,我可以执行如下查询:

但是,如果我尝试执行部分查询 - 例如,检索具有相同标签的所有项目 - 我的代码将无法编译:

我知道它为什么不编译:在比较器中我明确使用,.get<0>()但部分搜索元组没有.get<1>()和元素。我不知道如何创建正确的比较器。如果我尝试向它添加另外两个仅采用一个元素的元组的函数,那么编译器会抱怨调用中的歧义。.get<2>()<1><2>operator()

我也明白这composite_key_result应该是一个不透明的对象,我不应该使用它的内部。

所以我的问题是如何创建所需的索引和正确的比较器?

0 投票
1 回答
223 浏览

c++ - 定义 multi_index_container ordered_non_unique 时遇到问题

我正在玩一些 boost 容器,但我最近遇到了障碍,因为我似乎无法正确定义 multi_index_container。我正在关注我离线抓取的示例,但它仍然给我和错误消息:

这里是我的报关表:

我有一种预感,我没有为此提供文件,但我找不到解决方案。

0 投票
1 回答
584 浏览

c++ - boost多索引容器,纯虚函数类

我想使用 A 类型创建 multi_index_container 存储类型 C 的对象,该类型从 B 派生,B 派生自 A。问题是在 AI 中具有纯虚函数。当我尝试编译它时,我得到了最底部描述的错误。

  • 我想不可能做到正确吗?

  • 整个想法有缺陷吗?

代码

错误

0 投票
1 回答
297 浏览

boost - boost relocate 功能,效果如何?

relocate()boost多索引容器中的含义是什么?

我已经阅读了 boost 文档中的手册,但我想看一个简单的例子,看看使用不使用relocate 函数的区别。虽然网上的例子并不简单......

0 投票
2 回答
127 浏览

c++ - Boost multi_index unqiue 索引问题

我正在尝试使用 boost::multi_index 创建一个 URL 管理对象。它有 2 个索引,每个路径项的一个索引位置和一个用于查找该项目的索引键。

但是有一个问题,并非所有项目都有它的关键。大多数项目只包含位置和路径。我希望 key 是唯一的。现在,当我插入多个非关键项时,问题就会出现。

是否可以允许带有空字符串的键在容器中包含多个项目。如果不是,我应该怎么做才能克服这个问题?

0 投票
1 回答
544 浏览

c++ - 错误:“模板”(作为消歧器)只允许在模板中使用

我有以下定义:

问题是,当我尝试使用 gcc 4.5.3 编译它时,出现以下错误:错误:“模板”(作为消歧符)仅允许在标有 (*) 的模板中使用。在 Visual Studio 2008 中,它可以编译。

这是什么原因?如何解决?

0 投票
1 回答
132 浏览

c++ - boost::multi_index 中的 Sql IN 模拟

我使用 boost::multi_index 并像这样检索数据:

此代码检索所有红色连衣裙。有什么方法可以通过一次查询来检索红色和黄色连衣裙?就像在 SQL 中一样: