У вас возникли проблемы с подключением пула соединений. Существует ли конкретная реализация объединения пулов, которую вы используете? Одним из наиболее часто используемых является Хикари.
Как настроить HikariCP в моем приложении Spring Boot в моих файлах application.properties?
Как упоминалось ранее, если 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();
}
Поскольку вы используете d
как часть порядка для вашего priority_queue
, вы не можете вносить в него изменения, как только начнете добавлять вещи в очередь. Это потенциально может изменить порядок объектов, содержащихся в очереди, и нарушить строгий слабый порядок , требуемый для сравнения, используемого для priority_queue
.
Кроме того, элементы в priorty_queue
не полностью отсортированы, потому что это реализовано с использованием кучи .