1
有没有办法将元素移出std :: multiset?从std :: multiset移动元素
由于C++ 11 std :: multiset :: iterator被定义为一个const bidirectional_iterator。我明白推理是为了保持元素排序,但似乎没有办法删除并修改仅移动对象。
有没有办法将元素移出std :: multiset?从std :: multiset移动元素
由于C++ 11 std :: multiset :: iterator被定义为一个const bidirectional_iterator。我明白推理是为了保持元素排序,但似乎没有办法删除并修改仅移动对象。
我不认为你可以用std :: multiset来做到这点,尽管它应该可以用Boost的multi_index_container来实现。它有一个使用迭代器和更新函数的modify()方法。在那个仿函数中,你应该能够移动这个值。
有关详细信息,请参阅Boost multi_index documentation。
像[提取](http://en.cppreference.com/w/cpp/container/multiset/extract),但为c + + 11? –
啊,是的,它太C++ 17了。 –
可能是在c + + 11的监督,不知道你有任何替代= \ –