ジェネリックで、出力反復子を任意のコンテナー型 (つまり、アロケーターに関係なく特定の種類のマップ) に渡す関数を作成しようとしています。
ただし、 itOut によって参照されるマップに既に要素が含まれているかどうかを知りたいです。含まれている場合は、それを更新します
template<typename OutputIterator>
static void foo(const std::wstring& rstr, OutputIterator itOut)
{
// Insert two items into the map that itOut references
itOut++ = TokenPair(t, 1);
itOut++ = TokenPair(t, 2);
// This here I don't know how to do
if(somehow check the map already contains t)
{
map[t] = 5;
}
}
確かにこれには方法があるはずですか?
プログラムの他の部分は、同じペアを持つが異なるアロケータを持つマップを渡そうとしているため、これが最善の方法のようです。