台部落
註冊
登錄
寫文章
請輸入正確的登錄賬號或密碼
註冊
忘記密碼
首頁
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這本書直接查後面,像英語字典一樣的方法,首字母。
最新評論文章
https://yachay.unat.edu.pe/blog/index.php?comment_area=format_blog&comment_component=blog&comment_co
linux以太網驅動總結