"std ::" структура данных с сортировкой / упорядочением, тестами на наличие и доступом к голове / хвосту? - PullRequest
0 голосов
/ 20 марта 2012

Мне нужна структура данных (предпочтительно std), которая может похвастаться:

  • сортировкой (при вставке, если возможно)
  • сравнением (по произвольному доступу или функцией-члену), чтобы определитьесли объект уже существует в структуре
  • возможность поиска и удаления ведущего / конечного элемента

Я рассмотрел вектор, но реальной поддержки сортировки не существует, но имел другую2

Я также рассмотрел приоритетную очередь, но мне нужно иметь возможность сравнивать с тем, что уже есть.

Ответы [ 2 ]

3 голосов
/ 20 марта 2012

Вы можете использовать std::set.

  1. Сортирует вставленные в него элементы.
  2. Чтобы проверить, существует ли элемент, вы можете использовать set::find.
  3. Для извлечения ведущего элемента вы можете использовать итератор set::begin, а для последнего элемента вы можете использовать set::rbegin. Для удаления этих элементов вы можете использовать метод set::erase.
1 голос
/ 20 марта 2012

Рассматривали ли вы список? Кажется, это соответствует вашему запросу, вам придется сортировать после каждой вставки или после того, как список заполнен, но у него есть функция сортировки как часть шаблона. Он имеет функции для доступа к передним и задним элементам, а также к прямым и обратным итераторам. Вот ссылка, которую я нашел в строке, которая может быть полезна: http://www.cplusplus.com/reference/stl/list. Я уверен, что есть и другие примеры.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...