-1

関数バージョン 1、map stl一度ルックアップし、ローカルの静的変数に保存

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

関数バージョン 2、関数を呼び出すたびにループします

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

前の 2 つの関数呼び出しがあり、知りたい

  1. より適切と考えられるものは何ですか?
  2. 長所と短所?
  3. どちらを使用するのが好きですか?その理由は?
  4. rValue のgetStr戻り値の型として結果をキャッシュする方法がある場合は、const string&
4

1 に答える 1

0

1 つ目は、dataInputPath が呼び出されると、マップ内の値が変更されても、値が更新されることはありません。

マップから直接値を取得するだけです。必要に応じて、適切な方法で値をキャッシュするのは呼び出し元のコードに任せてください。

キー「input」はハードコーディングされているため、グローバルな input_string 変数を持たないのはなぜですか?

于 2013-10-09T14:54:22.980 に答える