-1

功能版本一,map stl查找一次并保存在本地静态变量中

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

函数版本二,每次调用函数时循环

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

我有previos两个函数调用,我想知道

  1. 什么被认为更合适?
  2. 优点和缺点?
  3. 你更喜欢使用哪一个,为什么?
  4. 如果有办法将结果缓存为 rValuegetStr返回类型const string&
4

1 回答 1

0

首先,一旦调用了 dataInputPath,该值就永远不会更新,即使映射中的值发生了变化。

我会直接从地图中检索值。如有必要,将其留给调用代码以合理的方式缓存该值。

由于键“输入”是硬编码的,为什么不只使用全局 input_string 变量?

于 2013-10-09T14:54:22.980 回答