Boost 返回一个迭代器,以std::set<;形式提升multiintex容器>;::迭代器

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,

Boost多索引容器的文档似乎表明,在声明要迭代的索引之后,我可以将其作为一个集合使用。所以我想知道是否有可能隐藏boost实现,并将一个伪装成迭代器的迭代器返回给
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
传递给
多索引容器的索引