我的应用程序在map结构中最多只能处理一定数量的条目,我如何在代码中指定该限制,以便我的代码不会被淹没(因为缺少更好的术语)。在定义map类型的变量时,有没有办法指定最大限制?
谢谢
发布于 2011-01-22 20:28:27
在尝试了上限分配器的想法之后,我认为聚合一个std::map会更简单(注意:不是继承自!至少不是公开的)在cappedadaptor中。
template<typename tKey, typename tVal> class cappedmap {
typedef std::map<tKey,tVal> tmap;
tmap mymap;
cappedmap(size_t amax):mymax(amax){}
// adapt the map interface
pair<tmap::iterator,bool> insert( tmap::value_type kv ) {
if( mymap.size() > mymax ) throw myexcept();
return mymap.insert(kv);
}
tVal operator[]( tKey k ) {
tVal v = mymap[k];
if( mymap.size() > mymax ) {
mymap.remove(k)
throw myexcept();
}
}
...
};https://stackoverflow.com/questions/4728219
复制相似问题