0

オブジェクトが存在しないときにキーを使用してマップ コンテナー内のオブジェクトにアクセスしようとすると、デフォルトのコンストラクターを使用して自動的に構築されます。

たとえば、1つのパラメーターで別のコンストラクターを使用する方法はありますか?

4

1 に答える 1

2

私は個人的にこの動作は奇妙だと思いますが、本当にそうしたい場合は、あなたが望むものを明示的に書くことをお勧めします:

例えば:

typedef std::map<int, std::string> MapType;

std::string FindSomething(int key, const std::string& extraParameter)
{
    MapType::iterator It = TheMap.find(key);

    if (It == TheMap.end())
    {
        TheMap.insert(std::make_pair(key, extraparameter));

        return extraParameter;
    }
    else
    {
        return It->second;
    }
}

自動挿入に依存しないでください。

于 2013-03-29T07:58:19.777 に答える