Проверка наличия ключа и вставка в hash_map
- 23.03.09, 19:32
Часто бывает нужно проверить есть ли некий ключ в hash_map и в случае его отсутствия - вставить его с некоторым значением.
Это наиболее эффективно делать следующим образом:
std::pair<TKeyHash::iterator, bool> res = _keys.insert(TKeyHash::value_type(key, curTime.Unix()));
if (res.second) // если значение положительное - ключа небыло и он вставился
{
// делаем что-то со значением...
}
else // ключ уже был и итератор смотрящий на значение помещен в res.first
{
// делаем что-то со значением...
}
Это наиболее эффективно делать следующим образом:
std::pair<TKeyHash::iterator, bool> res = _keys.insert(TKeyHash::value_type(key, curTime.Unix()));
if (res.second) // если значение положительное - ключа небыло и он вставился
{
// делаем что-то со значением...
}
else // ключ уже был и итератор смотрящий на значение помещен в res.first
{
// делаем что-то со значением...
}
0