为了账号安全,请及时绑定邮箱和手机立即绑定

list :: size()真的是O(n)吗?

list :: size()真的是O(n)吗?

C++
慕尼黑8549860 2019-11-28 14:05:09
最近,我注意到有人提到它std::list::size()具有线性复杂性。根据某些 消息来源,这实际上取决于实现,因为该标准并未说明复杂性。此博客文章中的评论说:实际上,这取决于您使用的STL。Microsoft Visual Studio V6将size()实现为{return(_Size); },而gcc(至少在版本3.3.2和4.1.0中)按{return std :: distance(begin(),end()); }第一个具有恒定速度,第二个具有o(N)速度所以我的猜测是,对于VC ++人群来说,size()其复杂性一直存在,因为Dinkumware自VC6以来可能不会改变这一事实。我在那里吗?目前看起来像gcc什么?如果确实是O(n),为什么开发人员选择这样做?
查看完整描述

3 回答

  • 3 回答
  • 0 关注
  • 693 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信