首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >有没有办法限制STL::map容器的最大大小?

有没有办法限制STL::map容器的最大大小?
EN

Stack Overflow用户
提问于 2011-01-19 03:35:37
回答 3查看 1.9K关注 0票数 1

我的应用程序在map结构中最多只能处理一定数量的条目,我如何在代码中指定该限制,以便我的代码不会被淹没(因为缺少更好的术语)。在定义map类型的变量时,有没有办法指定最大限制?

谢谢

EN

Stack Overflow用户

发布于 2011-01-22 20:28:27

在尝试了上限分配器的想法之后,我认为聚合一个std::map会更简单(注意:不是继承自!至少不是公开的)在cappedadaptor中。

代码语言:javascript
运行
复制
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();
     }
   }
   ...
};
票数 1
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4728219

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档