У меня есть boost::multi_index
с видом hashed_non_unique
. То, что я хотел бы достичь, учитывая ключ в этом представлении, использовать
pair<myIter, myIter> iterRange = myView.equal_range(key);
for (myIter iter = iterRange.first; iter != iterRange.second; ++iter) {
// ...
}
чтобы найти все элементы, связанные с этим ключом. Затем пропустите эти элементы через фильтр
bool filter(Element e) { /* some filtering logic*/ }
и модифицировать отфильтрованные результаты с модификатором
void modifier(Element e) { /* modify the elements with e.g. myView.modify() */ }
Однако простое объединение этих частей не работает, поскольку изменение элементов приводит к переупорядочению multi_index, что делает мой iterRange недействительным.
Каков будет правильный способ сделать это? Спасибо!