порядок приоритетной очереди не ожидается

У вас возникли проблемы с подключением пула соединений. Существует ли конкретная реализация объединения пулов, которую вы используете? Одним из наиболее часто используемых является Хикари.

Как настроить HikariCP в моем приложении Spring Boot в моих файлах application.properties?

Как настроить HikariCP в моем приложении Spring Boot? g2]

1
задан bright yang 20 January 2019 в 00:31
поделиться

2 ответа

Как упоминалось ранее, если x уже сохранено в priority_queue и вы измените d[x], вы уничтожите свою структуру данных. Очевидное решение состоит в том, чтобы удалить элемент, заменить d и затем поместить его обратно. AFAIK, priority_queue не разрешает удаление с произвольным доступом, поэтому вы можете использовать set. set.begin() возвращает самый низкий элемент.

void update(int x, int v) {
  set.erase(x);
  d[x] = v;
  set.insert(x);
}

int getMin() {
  return *set.begin();
}
0
ответ дан dyukha 20 January 2019 в 00:31
поделиться

Поскольку вы используете d как часть порядка для вашего priority_queue, вы не можете вносить в него изменения, как только начнете добавлять вещи в очередь. Это потенциально может изменить порядок объектов, содержащихся в очереди, и нарушить строгий слабый порядок , требуемый для сравнения, используемого для priority_queue.

Кроме того, элементы в priorty_queue не полностью отсортированы, потому что это реализовано с использованием кучи .

0
ответ дан 1201ProgramAlarm 20 January 2019 в 00:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: