通常下面**:
if(c.size() == 0)
if(c.empty())
我們會覺得它們是是等價的。
主要是他們之間的效率有一定差距:
bool empty() const //list的empty操作
而size()則是通過區間遍歷來數一數。
如果size()想在常數時間內實現,那麼每個操作都要維護size的值。
splice()的特點就是能常數實現鏈結。如果想實現size的常數,那麼就需要放棄splice()的常數特點(需要遍歷維護).
所以就要看你使用的list是把 size() or splice()放在第一位。
但是使用empty肯定總是花費常數的時間。
effective stl
size 0和empty 的比較
最近開發公司專案的時候發現大量用到了stl模板庫,而且很多地方都需要判斷乙個容器是否為空,看到了兩種寫法,分別使用了容器的 size 函式和 empty 函式。我覺得很好奇,這兩種寫法有什麼區別呢?在網上查閱了一些資料,發現說empty 效率更高的佔大多數。又檢視了sgi stl的幫助文件,裡面有一...
sizeof,length和size 的區別
今天c 上刷題,很簡單的乙個題,卡在了計算vector的長度這一步。sizeof vector 和 vector.size 得到的結果不一樣,於是學習了下基礎。是運算子,在標頭檔案中typedef為unsigned int,其值在編譯時即計算好了,引數可以是陣列 指標 型別 物件 函式等。sizeo...
isset 和empty 的區別
php的isset 函式 一般用來檢測變數是否設定 格式 bool isset mixed var mixed var 功能 檢測變數是否設定 返回值 若變數不存在則返回 false 若變數存在且其值為null,也返回 false 若變數存在且值不為null,則返回 ture 同時檢查多個變數時,每...