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的監督,不知道你有任何替代= \ –