我试图做一个通用的函数,并且将输出迭代器带到任何容器类型(即,与分配器无关的一种特殊类型的映射)。
但是,我想知道itOut引用的 map 是否已经包含一个元素,如果是,请对其进行更新。
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;
}
}
当然一定有办法吗?
这似乎是最好的方法,因为程序的其他部分正在尝试传递具有对相同但分配器不同的映射。
最佳答案
我采用了安迪·普罗(Andy Prowl)提出的解决方案,其中该方法被模板化以采用适当的 map 类型。这样分配器就变得无关紧要了。
关于c++ - STL映射输出迭代器查找值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15145955/