高深的應用我們這一篇先不講,先從簡單的來談起,什麼是MAP,MAP是幹啥用的,啥時機用,大概就講這些。

 

MAP是什麼 ?

 

Map是C++標準庫的一個class,為眾多容器之一,他提供了Search 和 insert 友善的資料結構,並具備一對一mapping的功能,而什麼是一對一 ? 你想像一下,在求學的時候,你剛進學校,老師就會給你打一個編號 (學號),比如說9527好了,打完後,從學期初到你離開這個班級前,你就是9527,9527就是你了。

這就是一對一,Eric就是9527,9527就是Eric。

 

在Map裡面,有兩個重要的參數 :

First 和 Second

First就是關鍵字 (Key),而Second就是Value(值),套入上面的舉例,在老師的點名簿裡面會有一行是 9527.Eric,然後,這邊只有一個重點,就是Key絕對不會重複,畢竟,你沒有看過老師用學號點名的時候,突然有兩隻手舉起來過吧 ?

 

 

Map的特色

 

Map的內部資料結構是一顆紅黑樹 (red-black-tree)(這個我們改天在詳談),因此呢 :

1.

內部是有排序的資料,這個就代表你呢,插入的Key的順序可以是 1 3 5 7 9 2 4 6 8 0 ,

然後到時候一個回圈,從第一個output到最後一個,你會發現,順序會自己變成 0 1 2 3 4 .... 9

2.

對於Search 和 insert 操作很快 (O(logn))

 

-----------------------------------------------------------------------------------------------

[結論]

1.可以修改value,但是不能修改key (你可以改名字,但是你不能擺脫9527這個編號)。

2.以模板方式實現,可以儲存任意類型的變數,包括使用者自定義的資料型態。

-----------------------------------------------------------------------------------------------

 

 

 

接下來,大家就看Code理解就可以了,

有點基礎的朋友應該很快就能理解了。 

 

 

 

 

 

 

 

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 Eric 的頭像
    Eric

    一個小小工程師的心情抒發天地

    Eric 發表在 痞客邦 留言(0) 人氣()