3.调用empty而不是检查size()是否为0
生活随笔
收集整理的這篇文章主要介紹了
3.调用empty而不是检查size()是否为0
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
檢查容器是否為空,一律都使用成員函數empty()而非size()。
因為empty()總是常數復雜度,而size()卻不都是,比如list就不是。如果list要使size()為常量復雜度,就必須保存元素的數量。涉及到會導致元素數量變化的成員函數,就需要知道新增或減少元素的個數(通過遍歷),然后更新元素數量。這會使該成員函數為線性復雜度。而list的成員函數splice()被設計為常數復雜度,不知道新增元素的個數。
splice()和size()兩者的常量復雜度不可兼得,二者只能得一。
STL選擇splice()為常量復雜度, 所以size()就只能為線性復雜度。
?
總結
以上是生活随笔為你收集整理的3.调用empty而不是检查size()是否为0的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2.区间成员函数优先于与之对应的单元素成
- 下一篇: 4.如果容器中包含了通过new操作创建的