无法从boost multi_index_container 中删除元素

Unable to remove element from boost multi_index_container++

本文关键字:container 删除 元素 index boost multi      更新时间:2023-10-16

在Centos 7,G 4.8.5-28上构建。语言标准:C 03

工作样本:https://godbolt.org/z/ijsfrk

在"方法删除"中,对mapDb.erase(clientIter);的调用失败(有关实际代码和编译错误,请参见链接中的示例代码(。我想知道这是否是由于使用复合键和钥匙提取器方法的多个有序索引?

而不是

mapDb.erase(clientIter);

你必须写

clientView.erase(clientIter);

请记住,每个索引(视图(都有自己的迭代器类型,您无法自由互换。为了方便起见,容器本身(此处的mapDb(的行为类似于其第一个(#0(索引,因此mapDb.erase只能接受serverView的迭代器。