Эффективная вставка или обновление целочисленных значений в хэш-карте C++ с помощью повторяющихся целочисленных ключейC++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Эффективная вставка или обновление целочисленных значений в хэш-карте C++ с помощью повторяющихся целочисленных ключей

Сообщение Anonymous »

Я работаю с std::unordered_map в C++, где и ключи, и значения являются целыми числами. Мой набор данных содержит много повторяющихся ключей. Для каждой пары ключ-значение в данных:
Если ключ не существует в карте: вставьте ключ с соответствующим значением.
Если ключ уже существует: обновите. существующее значение, добавив к нему новое значение (т. е. карта[ключ] = карта[ключ] + новое значение).
В настоящее время я проверяю, существует ли ключ, перед вставкой или обновлением, используя:

Код: Выделить всё

if (map.count(key) > 0) {
// Key exists, update the value
map[key] += newValue;
} else {
// Key does not exist, insert the key-value pair
map[key] = newValue;
}

Однако я обеспокоен тем, что выполнение этой проверки существования перед каждой вставкой может увеличить общую временную сложность до O(n²) для больших наборов данных.
Есть ли более эффективный способ вставки или обновления значений в карту без явной проверки существования ключа каждый раз?


Подробнее здесь: https://stackoverflow.com/questions/128 ... eated-inte
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»