台部落
註冊
登錄
寫文章
請輸入正確的登錄賬號或密碼
註冊
忘記密碼
首頁
C++學習
正文
为什么判断 std::vector 是否为空时,用 if(0==vec.size()) 提示效率低,但用 if (vec.empty()) 正常?
原創
dingzhiq1
2018-08-25 09:25
为什么判断 std::vector 是否为空时,用 if(0==vec.size()) 提示效率低,但用 if (vec.empty()) 正常?
修改
编译器错误:Possible inefficient checking for 'vecAttrValue' emptiness
修改
举报
添加评论
分享
•
邀请回答
默认排序
按时间排序
7 个回答
5
赞同
反对,不会显示你的姓名
pezy
C++ Programmer
5
人赞同
这要看编译器的具体实现。以下就gcc为例:
对于
std::vector
来说, 其实
效率没区别
. 但对于std::list来说(gcc 4.6-), empty()的效率是O(1), size()的效率是O(n). 所以更好的习惯, 应该是在这种情况下, 统一使用empty().
C++11对size()的效率做了一致性的规定。所以在gcc 4.7+, std::list的复杂度也是O(1)了。原因是增加了一个“size”的变量来存长度。
参考:
https://
gcc.gnu.org/bugzilla/sh
ow_bug.cgi?id=49561
编辑于 2014-09-12
8 条评论
感谢
分享
收藏
•
没有帮助
•
举报
•
申请转载
4
赞同
反对,不会显示你的姓名
周星星
答题当『言简意赅』以节约读者时间
4
人赞同
问你火车来了没来,你瞄一眼就够了;
问你火车来了几节车厢,你得看仔细了,车头的GPS座标,车尾的GPS座标,差值再除以车厢长度。
发布于 2014-09-12
添加评论
感谢
分享
收藏
•
没有帮助
•
举报
•
作者保留权利
16
赞同
反对,不会显示你的姓名
白如冰
16
人赞同
size()是end()-begin().
empty()是判断begin()==end().
發表評論
登录
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
Linux系统,在图形界面下,设置开机启动客户端程序(脚本)。
冯一川
2018-08-27 19:21:04
linux 下Qt初级教程(一)实现简易的计算器
冯一川
2018-08-27 19:21:02
C++学习记录 2
拖鞋学长的日常笔记
2018-08-27 19:08:11
C++ sizeof问题
yin4ever
2018-08-27 19:01:09
数据结构-线性表 (C++)
yin4ever
2018-08-27 19:01:08
C++习题整理(3)
yin4ever
2018-08-27 19:01:08
C++习题整理(2)
yin4ever
2018-08-27 19:01:07
数据结构 单链表 (C++)
yin4ever
2018-08-27 19:01:07
"error LNK2019: 无法解析的外部符号"错误的解决办法
wangjuhua1991
2018-08-27 18:50:21
两段代码共存于一个文件,编译时有选择地编译其中的一部分,如何实现
小肥羊的慢慢科研路
2018-08-27 16:59:26
在C++程序中调用被C编译器编译后的函数,为什么要加extern “C”
小肥羊的慢慢科研路
2018-08-27 16:59:14
如何判断一段程序是由C编译程序还是由C++编译程序编译的
小肥羊的慢慢科研路
2018-08-27 16:59:13
c/c++字符串处理大集合
小肥羊的慢慢科研路
2018-08-27 16:59:13
编译型语言与解释型语言的区别是什么
小肥羊的慢慢科研路
2018-08-27 16:59:13
编译和链接的区别是什么?
小肥羊的慢慢科研路
2018-08-27 16:59:13
D
dingzhiq1
24小時熱門文章
物理机开关机
最新文章
leetcode412+vector賦值+非靜態成員引用必須與特定對象相對+vector的輸出+operator
Pentagonal數列問題——2.2
win7無法安裝Microsoft .NET Framework 4.5\4.0
VS2012旗艦版下載地址和安裝密鑰
引用和指針,查C++primer這本書直接查後面,像英語字典一樣的方法,首字母。
最新評論文章
Mac下配置sublime實現LaTeX
https://yachay.unat.edu.pe/blog/index.php?comment_area=format_blog&comment_component=blog&comment_co
linux以太網驅動總結