mot*_*m79 2 c++ boost boost-multi-index
我有一个用于存储成员的 Boost 多索引容器MyClass。它有一个唯一的(first_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;
Run Code Online (Sandbox Code Playgroud)
如果我通过第二个索引搜索容器:
auto it = container.get<1>().find("second_field_value_to_be_searched);
Run Code Online (Sandbox Code Playgroud)
我得到一个 const 迭代器。如何迭代容器中与上述谓词匹配的所有元素?
因此,请equal_range改用:
auto r = container.get<1>().equal_range("second_field_value_to_be_searched");
Run Code Online (Sandbox Code Playgroud)
这会产生一对迭代器。您可以像往常一样迭代它们,或者将它们包装在迭代器范围中:
for (auto& record : boost::make_iterator_range(r)) {
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1513 次 |
| 最近记录: |