gpt4 book ai didi

c++ - boost multi_index 部分索引

转载 作者:太空宇宙 更新时间:2023-11-04 14:25:12 25 4
gpt4 key购买 nike

我想在内部实现 boost 多索引两组具有相同搜索条件但不同驱逐条件的键。假设我有两组具有相同搜索条件的数据,但一组需要 100 的 MRU(最近使用)列表,另一组需要 200 的 MRU。假设条目是这样的

class Student
{
int student_no;
char sex;
std::string address;
};

搜索条件是 student_no,但对于 sex='m',我们需要 200 的 MRU,对于 sex='f',我们需要 100 的 MRU。现在我有一个解决方案,其中我引入了一个新的有序索引以维持秩序。

例如 IndexSpecifierList 将是这样的

typedef multi_index_container<
Student,
indexed_by<
ordered_unique< member<Student, int, &Student::student_no> >,
ordered_unique< composite_key<
member<Student, char, &Student::sex>,
member<Student, int, &Student::sex_specific_student_counter> > >
>
> student_set

现在每次我插入一个新的,我必须使用索引 2 为那个取一个 equal_range 并删除最旧的,如果有东西被重新使用,我必须通过递增计数器来更新它。

这种问题有更好的解决方案吗?

谢谢,悟空。

最佳答案

可以用 sequenced 代替第二个索引并将将男性和女性拆分为缓存的迭代器来执行相同的操作。这有助于实现相同的行为。

关于c++ - boost multi_index 部分索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4503574/

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