сотрите макс. элемент из набора STL

Это - продолжение по предыдущему вопросу, который я имел (Сложность STL max_element).

Я хочу в основном вытолкать макс. элемент от набора, но я сталкиваюсь с проблемами.

Вот примерно мой код:

set objectSet;

Object pop_max_element() {
    Object obj = *objectSet.rbegin();
    set::iterator i = objectSet.end()--; //this seems terrible
    objectSet.erase(i); //*** glibc detected *** free(): invalid pointer
    return obj;
}

Ранее я попробовал objectSet.erase(objectSet.rbegin()); но компилятор жаловался, что не было никакой функции соответствия (я предполагаю, что ему не нравится reverse_iterator). Я знаю, что нет никакой проверки пустое множество, но оно перестало работать когда objectSet.size ()>> 0.

5
задан Community 23 May 2017 в 10:29
поделиться