вызовы функции поиска по карте Vs кэшируют поиск как статическую переменную

0

функция version one, map stl один раз и сохранение в локальной статической переменной

inline const string & dataInputPath()
{
    static string inputpath = Mngr.getStr("input");
    return inputpath;
}

функция 2-й версии, каждый раз, когда мы вызываем функцию

inline const string & dataInputPath()
{
    return Mngr.getStr("input");
}

У меня есть два вызова функций, я хочу знать

  1. что считается более подходящим?
  2. за и против?
  3. какой из них вы предпочитаете использовать и почему?
  4. и если есть способ кэшировать результат, так как getStr возврата rValue getStr - это const string&
Теги:
function
stl

1 ответ

0

В первом случае, когда вызывается dataInputPath, значение никогда не обновляется, даже если значение на карте изменяется.

Я бы просто получил значение с карты напрямую. Оставьте его вызывающему коду, чтобы в случае необходимости кэшировать значение разумным образом.

Поскольку ключевой "enter" жестко запрограммирован, почему бы просто не иметь глобальную переменную input_string?

  • 0
    У меня есть только 4 клавиши, поэтому следующий шаг - переместить его в ключ enum. mapValue никогда не меняется, хотя

Ещё вопросы

Сообщество Overcoder
Наверх
Меню