gpt4 book ai didi

c++ - Boost:Multi-index: 如何遍历匹配非唯一有序索引的所有结果?

转载 作者:搜寻专家 更新时间:2023-10-31 01:28:54 25 4
gpt4 key购买 nike

我有一个用于存储 MyClass 成员的 Boost 多索引容器。它有一个唯一的 (first_field) 和非唯一的 (second field) 索引:

typedef multi_index_container<
MyClass,
indexed_by<
ordered_unique<member<MyClass, std::string, MyClass.first_field>>,
ordered_non_unique<member<MyClass &, std::string, MyClass.second_field>>>
> MyClass_Set;

如果我按第二个索引搜索容器:

auto it = container.get<1>().find("second_field_value_to_be_searched);

我得到一个 const 迭代器。如何遍历容器中与上述谓词匹配的所有元素?

最佳答案

因此,请改用 equal_range:

auto r = container.get<1>().equal_range("second_field_value_to_be_searched");

这会产生一对迭代器。您可以像往常一样迭代它们,或将它们包装在迭代器范围内:

for (auto& record : boost::make_iterator_range(r)) {
}

关于c++ - Boost:Multi-index: 如何遍历匹配非唯一有序索引的所有结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50959950/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com