map的详解及常见面试题
map的概念
??map是STL中的一個關(guān)聯(lián)式容器,它提供一對一的K-V的數(shù)據(jù)處理能力,由于這個特性,在我們需要完成Key-Value數(shù)據(jù)處理的時候可以很方便的調(diào)用。map的底層結(jié)構(gòu)是紅黑樹,這棵樹對數(shù)據(jù)有自動排序的功能,所以map中的數(shù)據(jù)都是有序的,并且查找的時間復(fù)雜度基本是LogN。他的特點是增加和刪除節(jié)點對迭代器的影響很小,只對操作的節(jié)點有影響,但是對于迭代器來說,可以修改節(jié)點對應(yīng)的V值,不能修改K值。
map中數(shù)據(jù)的插入
??在map中提供了三種插入方法:調(diào)用insert插入pair數(shù)據(jù)、調(diào)用insert插入value_type數(shù)據(jù)、使用數(shù)組方式插入數(shù)據(jù)
??從上面可以看出來,雖然他們都實現(xiàn)了插入,但他們之間還是有區(qū)別的,要根據(jù)不同的需要區(qū)別使用第一種和第二種在效果上完成的是一樣的,使用insert進(jìn)行插入,在數(shù)據(jù)的插入上設(shè)計到集合的唯一性這個概念,也就是當(dāng)map中已經(jīng)有了這個關(guān)鍵字的時候,insert是無法插入的,但是使用數(shù)組就不一樣了,它可以覆蓋之前該關(guān)鍵字的對應(yīng)的value。
總結(jié)
以上是生活随笔為你收集整理的map的详解及常见面试题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: RecyclerView拖拽排序和滑动删
- 下一篇: postgres与osm初步使用