美国华人网FuninUSA|唐人社区|北美华人论坛:找好货,找礼品卡,找折扣,找工作,找内推,找项目,找股票

 找回密码
 立即注册
  • 《汉尼拔》第四季有回归的可能性了!
  • 略惊悚:Wi-Fi变狗仔 还能全息成像
  • 厉害了!中国动车组获欧盟铁路最高认证
  • 黄种人首进9.9秒!苏炳添百米创个人最好成绩
  • 北斗/GPS导航定位基准服务启用!精度/信号大提升
  • 神秘外星人在哪?科学家发现了这个地方...
  • 黄金竟有这神用途:成抗击癌症的“子弹”
  • 海盗传说:真的有海怪、美人鱼吗?
  • 夏天穿浅色衣服更凉快?被骗好多年……
  • 为什么互联网大佬都开始养猪养鸡了?
    Logo1-800-PetMeds Free Shipping $49Take $10 Off Your First Order w/code: SAVE10 - 234 x 60
    ASICS AmericaPagoda Piercing Banner 234x60Sierra Trading Post
    搜索
    查看: 3139|回复: 9

    内推面经 -面试题:设计一个expired map class- 唐人社区|北美华人论坛

    [复制链接]

    11

    主题

    211

    帖子

    236

    积分

    中级会员

    Rank: 3Rank: 3

    积分
    236
    QQ
    发表于 2016-10-28 22:14:14 | 显示全部楼层 |阅读模式
    分享到:
    {$content}

    唐人社区-北美华人论坛-内推面经版-面试题:设计一个expired map class


      JobHunting
    标 题: 面试题:设计一个expired map class


    题目大概是:设计一个类似于普通map的class,主要的不同是添加每个元素的时候,有
    一个时间参数long type, 单位是ms。比如50000,如果50000ms passes,这个元素没有
    被人为删除的话,它需要被自动删除。base class的定义myMap::add, myMap::erase都
    是pure virtual function。

    我当时给出的答案是用STL::map存储,然后用STL:unordred_map存储
    ,系统时间前进的时候,
    去第二个map里找到list删除第一个map里的element。答得很笼统,当时要求写具体的
    code,不知道C++里涉及到系统时间的函数是啥。
    --

    新浪微博官方账号】很省钱 : 每日滚动更新美国市场折扣资讯微商进货首选资讯渠道。
    回复 百度谷歌雅虎搜狗搜搜有道360奇虎

    举报

    27

    主题

    100

    帖子

    158

    积分

    注册会员

    Rank: 2

    积分
    158
    QQ
    发表于 2016-10-28 23:58:55 | 显示全部楼层
    JobHunting
    标  题: Re: 面试题:设计一个expired map class


    马上删除? 那感觉必须用另一个执行绪帮忙monitor 了?
    --

    27

    主题

    93

    帖子

    158

    积分

    注册会员

    Rank: 2

    积分
    158
    QQ
    发表于 2016-10-29 00:47:41 | 显示全部楼层
    JobHunting
    标  题: Re: 面试题:设计一个expired map class


    用priority_queue,  pq的排序按照expiration time排。

    【 在 aimengren (追) 的大作中提到: 】
    : 题目大概是:设计一个类似于普通map的class,主要的不同是添加每个元素的时候,有
    : 一个时间参数long type, 单位是ms。比如50000,如果50000ms passes,这个元素没有
    : 被人为删除的话,它需要被自动删除。base class的定义myMap::add, myMap::erase都
    : 是pure virtual function。
    : 我当时给出的答案是用STL::map存储<key, value>,然后用STL:unordred_map存储<
    : current_time+时间参数, a list of elements of 1st map>,系统时间前进的时候,
    : 去第二个map里找到list删除第一个map里的element。答得很笼统,当时要求写具体的
    : code,不知道C++里涉及到系统时间的函数是啥。



    --

    38

    主题

    114

    帖子

    198

    积分

    注册会员

    Rank: 2

    积分
    198
    QQ
    发表于 2016-10-29 01:09:37 | 显示全部楼层
    JobHunting
    标  题: Re: 面试题:设计一个expired map class


    这样能不能满足要求?
    hashmap<key, pair<exp_time, value>>
    查询的时候如果时间已经过了exp_time直接删除,返回null
    --
    你再低调也没有用,你那拉风的头像、扎势的ID都深深的出卖了你

    20

    主题

    105

    帖子

    149

    积分

    注册会员

    Rank: 2

    积分
    149
    QQ
    发表于 2016-10-29 01:18:29 | 显示全部楼层
    JobHunting
    标  题: Re: 面试题:设计一个expired map class


    这个不满足,题目要求时间到必须删除。
    【 在 ChaoRen (厉害的超人) 的大作中提到: 】
    : 这样能不能满足要求?
    : hashmap<key, pair<exp_time, value>>
    : 查询的时候如果时间已经过了exp_time直接删除,返回null



    --

    33

    主题

    112

    帖子

    170

    积分

    注册会员

    Rank: 2

    积分
    170
    QQ
    发表于 2016-10-29 01:21:58 | 显示全部楼层
    JobHunting
    标  题: Re: 面试题:设计一个expired map class


    感觉楼主方向没问题啊
    --

    27

    主题

    123

    帖子

    175

    积分

    注册会员

    Rank: 2

    积分
    175
    QQ
    发表于 2016-10-29 02:13:51 | 显示全部楼层
    JobHunting
    标  题: Re: 面试题:设计一个expired map class


    跟定时器差不多吧

    【 在 say543 (Morris) 的大作中提到: 】
    : 马上删除? 那感觉必须用另一个执行绪帮忙monitor 了?



    --

    22

    主题

    100

    帖子

    148

    积分

    注册会员

    Rank: 2

    积分
    148
    QQ
    发表于 2016-10-29 02:57:54 | 显示全部楼层
    JobHunting
    标  题: 面试题:设计一个expired map class


    题目大概是:设计一个类似于普通map的class,主要的不同是添加每个元素的时候,有
    一个时间参数long type, 单位是ms。比如50000,如果50000ms passes,这个元素没有
    被人为删除的话,它需要被自动删除。base class的定义myMap::add, myMap::erase都
    是pure virtual function。

    我当时给出的答案是用STL::map存储<key, value>,然后用STL:unordred_map存储<
    current_time+时间参数, a list of elements of 1st map>,系统时间前进的时候,
    去第二个map里找到list删除第一个map里的element。答得很笼统,当时要求写具体的
    code,不知道C++里涉及到系统时间的函数是啥。
    --

    22

    主题

    100

    帖子

    146

    积分

    注册会员

    Rank: 2

    积分
    146
    QQ
    发表于 2016-10-29 03:18:55 | 显示全部楼层
    JobHunting
    标  题: Re: 面试题:设计一个expired map class


    感觉你可以用eager mode也可以用lazy mode。eager mode就是到了expiration time也
    不删,只是在用到那个entry的时候再顺便删掉,优点是实现简单省计算量,缺点是如
    果使用不平凡就占空间了。eager mode就跟你说的差不多,需要另外有个程序定时检查
    最小堆。其实如果元素加入频繁,expiration时间长的话,那么多指针放在额外的堆里
    也会占不少空间的。具体情况得具体分析。

    --
    ☆ 发自 iPhone 买买提 1.23.01
    --

    37

    主题

    1232

    帖子

    2447

    积分

    金牌会员

    Rank: 6Rank: 6

    积分
    2447
    QQ
    发表于 2016-11-28 02:37:09 | 显示全部楼层
    看起来不错
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    美国华人网|唐人社区|什么值得买FunInUSA.net发布的内推面经 -面试题:设计一个expired map class- 唐人社区|北美华人论坛帖子由网友提供或转载于网络,若发布的内推面经 -面试题:设计一个expired map class- 唐人社区|北美华人论坛侵犯了您的权益,请联系我们.
    Sasa.com

    Copyright ©2011 FunInUSA.NET All Right Reserved.  Powered by Discuz! X3.0 小黑屋

    本站信息均由会员发表,不代表美国华人网FunInUSA|唐人社区的立场,如侵犯了您的权利请发帖投诉  技术支持: 美国华人网FunInUSA|唐人社区

    安全联盟认证 安全联盟认证

    快速回复 返回顶部 返回列表