vector 與map的下標操作


1、vector的下標操作不會添加元素,只能針對已經存在的元素操作。

2、map的下標操作具有副作用,key不存在,會在map中添加一個具有該key的新元素,新元素的value使用默認構造方法。

3、為什么要這樣設計?

  vector是基於連續內存的容器,在尾部操作效率高,使用push_back添加元素,使用下標必須保證下表存在元素。

  map是基於節點的容器,元素有序。使用下標操作,第一步是查找key是否存在,map的內部實現是二叉樹(AVL樹或者紅黑樹),采用二分查找。不管是否存在key,查找key 的時候,也已經確定了key的位置。因此,如果不存在key,干脆添加一個,反正已經知道添加位置,對於基於節點的容器,在知道插入位置的情況下,插入效率為常數時間。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM