std::pair<_Ty1, _Ty2>

何故気がつかなかったのだ…

std::pair<_Ty1, _Ty2>

のテンプレートに wstring を両方突っ込んで vector コンテナって方法があった。
使うときには first メンバをキーにして取り出せばイイだけだ。
この方法なら設定の並び順は保持可能かつ拡張時の並び順も問題無い!

でもやってみないとどうなるか解らないわな。

class CGesMap
{
private:
    typedef std::wstring m_a;
    typedef std::wstring m_b;
    typedef std::pair<m_a, m_b> Pair;
    typedef std::vector<Pair> vec;
    vec m_vec;
public:
    void SetGesture(LPCWSTR szGesture, LPCWSTR szValue);
    std::wstring GetValue(std::wstring szGesture);
    std::wstring GetValue(int i);
    std::wstring GetKey(int i);
    int Count();
};

こんな感じで明日色々やってみます。
今日も休日出勤で疲れているのでまた明日。