檢查容器是否為空,一律都使用成員函數empty()而非size()。
因為empty()總是常數複雜度,而size()卻不都是,比如list就不是。如果list要使size()為常量複雜度,就必須儲存元素的數量。涉及到會導緻元素數量變化的成員函數,就需要知道新增或減少元素的個數(通過周遊),然後更新元素數量。這會使該成員函數為線性複雜度。而list的成員函數splice()被設計為常數複雜度,不知道新增元素的個數。
splice()和size()兩者的常量複雜度不可兼得,二者隻能得一。
STL選擇splice()為常量複雜度, 是以size()就隻能為線性複雜度。