したがって、この質問はすでに尋ねられている可能性が高いです。見つかりませんでした。
std::mapを定義して値を挿入するたびに、次のコードを使用します。
using IntVector = vector < int > ;
map<int, IntVector> mapTmp;
int iKey = 7;
int iVal = 9;
if (mapTmp.find(iKey) == mapTmp.end())
mapTmp.insert(pair<int, IntVector>(iKey, IntVector()));
mapTmp[iKey].push_back(iKey);
私を悩ませているのは3行です:
if (mapTmp.find(iKey) == mapTmp.end())
mapTmp.insert(pair<int, IntVector>(iKey, IntVector()));
mapTmp[iKey].push_back(iVal);
Python は、 setdefaultと呼ばれる非常に便利な dict 関数を提供します。これは、本質的にこれら 3 行を 1 つの美しい行に結合します。C++ で書きたいとすると、次のようになります。
mapTmp.setdefault(iKey, IntVector()).push_back(iVal);
質問
- そのような機能を提供していますか
C++
? - そうでない場合、誰もがその 3 行を常に書いていますか?