2017-01-01 81 views
1

有没有办法将元素移出std :: multiset?从std :: multiset移动元素

由于C++ 11 std :: multiset :: iterator被定义为一个const bidirectional_iterator。我明白推理是为了保持元素排序,但似乎没有办法删除并修改仅移动对象。

+1

像[提取](http://en.cppreference.com/w/cpp/container/multiset/extract),但为c + + 11? –

+0

啊,是的,它太C++ 17了。 –

+0

可能是在c + + 11的监督,不知道你有任何替代= \ –

回答

0

我不认为你可以用std :: multiset来做到这点,尽管它应该可以用Boost的multi_index_container来实现。它有一个使用迭代器和更新函数的modify()方法。在那个仿函数中,你应该能够移动这个值。

有关详细信息,请参阅Boost multi_index documentation