作者ric2k1 (Ric)
看板EE_DSnP
標題Re: [情報] Lecture Notes #4 & 7 are now online
時間Mon Oct 29 17:52:15 2012
※ 引述《ric2k1 (Ric)》之銘言:
: Lecture note #4 is about STL.
補充一下,
HW#3 關於 map 的使用方式,大家可以看一下這份講義的後面幾頁,
一些例子看過後應該會比較有概念。
簡單的說,你必須要知道:
1. 怎麼 traverse 過所有 map 裡面的 element? 怎麼抓到資料?
==> iterator or const_iterator, class pair, (*mi).second, etc.
2. 怎麼知道 (key, data) 有沒有在 map 裏頭?
==> if (m.find(key) != m.end())...
3. 怎麼插入資料到 map 裏頭?
==> m.insert(pair(key, data)) 與 m[key] = data 的差別
4. 怎麼清掉 map 裏頭所有的資料?
==> 自己 google!!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.21.240
1F:→ XDucka:我發現我找data都是用 if(m.count(key)>0) 這樣是不是變成 10/29 18:08
2F:→ XDucka:他一定要整個map都跑過一遍 所以大O就不是logN了 10/29 18:08
3F:→ ric2k1:倒是沒有看過用 count(key) > 0 的,不過 count 應該也是 10/29 23:45
4F:→ ric2k1:log N 吧! 10/29 23:45
5F:推 TommyKSHS:因為是紅黑樹所以 count 可以做到 logN 喔 10/30 01:54
6F:推 XDucka:原來map是紅黑樹阿XD 10/30 23:17
7F:→ XDucka:m.insert(pair(key, data)) 與 m[key] = data 的差別 是在 10/30 23:17
8F:→ XDucka:於一個不能覆蓋已經有key的資料一個可以嗎 10/30 23:18
9F:→ ric2k1:是的! 一個不能,一個一定會覆蓋/或產生新的 entry。 10/30 23:36