Boost 返回一个迭代器,以std::set<;形式提升multiintex容器>;::迭代器
Boost多索引容器的文档似乎表明,在声明要迭代的索引之后,我可以将其作为一个集合使用。所以我想知道是否有可能隐藏boost实现,并将一个伪装成迭代器的迭代器返回给Boost 返回一个迭代器,以std::set<;形式提升multiintex容器>;::迭代器,boost,boost-multi-index,stdset,Boost,Boost Multi Index,Stdset,Boost多索引容器的文档似乎表明,在声明要迭代的索引之后,我可以将其作为一个集合使用。所以我想知道是否有可能隐藏boost实现,并将一个伪装成迭代器的迭代器返回给std::set 例:标题 typedef multi_index_container< Employee, indexed_by< ordered_non_unique< composite_key< Employee,
std::set
例:标题
typedef multi_index_container<
Employee,
indexed_by<
ordered_non_unique<
composite_key<
Employee,
member<Employee, int, &Employee::id>,
member<Employee, int, &Employee::salary>
>
>
> > EmployeeSet;
const std::set<Employee>::iterator getEmployees();
static EmployeeSet employeeSet;
typedef多索引容器<
雇员,,
索引<
有序非唯一<
复合键<
雇员,,
委员:,
成员
>
>
>>员工集;
常量std::set::迭代器getEmployees();
静态EmployeeSet EmployeeSet;
Test.cc:
const std::set<Test::Employee>::iterator getEmployees(){
std::pair<EmployeeSet::iterator, EmployeeSet::iterator> by_id =
employeeSet.equal_range(id);
return by_id.first;
}
const std::set::iterator getEmployees(){
std::按_id配对=
employeeSet.equal_范围(id);
首先按_id返回;
}
有可能这样做吗?怎么做呢?不,你不能。您定义的
EmployeeSet
工作原理类似于std::set
(实际上是一个std::multiset
),但它不是一个。这些不相关容器的迭代器
类型不同,不能将一个作为另一个传递
也许您可以重新考虑为什么需要将
迭代器作为std::set::iterator
传递给多索引容器的索引 不,你不能。您定义的EmployeeSet
工作原理类似于std::set
(实际上是一个std::multiset
),但它不是一个。这些不相关容器的迭代器
类型不同,不能将一个作为另一个传递
也许您可以重新考虑为什么需要将迭代器作为std::set::iterator
传递给多索引容器的索引