最近,我注意到有人提到它std::list::size()具有線性復雜性。根據某些 消息來源,這實際上取決于實現,因為該標準并未說明復雜性。此博客文章中的評論說:實際上,這取決于您使用的STL。Microsoft Visual Studio V6將size()實現為{return(_Size); },而gcc(至少在版本3.3.2和4.1.0中)按{return std :: distance(begin(),end()); }第一個具有恒定速度,第二個具有o(N)速度所以我的猜測是,對于VC ++人群來說,size()其復雜性一直存在,因為Dinkumware自VC6以來可能不會改變這一事實。我在那里嗎?目前看起來像gcc什么?如果確實是O(n),為什么開發人員選擇這樣做?
list :: size()真的是O(n)嗎?
慕尼黑8549860
2019-11-28 14:05:09