→ hilorrk:直覺是sort之後找equal_range或count...XD 09/06 01:01
→ hilorrk:雖然big-O會簡少 但是不保證會變快XDD 09/06 01:02
→ hilorrk:話說你這樣寫會把"how,"和"how"當成不同的字... 09/06 01:05
→ jehovah:是啊.. 還在想辦法去掉標點才存.. 見笑了:) 09/06 01:09
→ hilorrk:我是想可以用getline加上find_first_(not_)of的delim來做 09/06 01:10
推 holymars:boost::bimap或boost::multi_index 09/06 01:40
→ hilorrk:考試來不及灌boost..(誤 09/06 01:47
推 loveme00835:remove_if, istringstream, istream_iterator, 09/06 01:57
→ loveme00835:multiset, count 09/06 01:57
→ hilorrk:用multiset跟vector+sort一樣平均都是nlogn 但是我記得不 09/06 02:16
→ hilorrk:會比較快的說... 09/06 02:16
推 holymars:如果有M個詞每個次出現N次 你全塞進去再sort 09/06 02:31
→ holymars:是MNlog(MN)...你丟進set或map算count是MNlog(M) 09/06 02:32
→ holymars:再來用equal_range找答案是Mlog(MN)..set是Mlog(M) 09/06 02:34
→ holymars:空間複雜度vector+sort是MN set是M 09/06 02:35
→ hilorrk:但是每次insert時同樣要耗logn不是嗎..加起來也是nlogn@@? 09/06 02:37
推 holymars:沒有啊 insert的時侯只是把count++而已 09/06 02:38
→ hilorrk:我記得1+2+...+logn會等於logn..演算法離我很遙遠XD 09/06 02:38
→ holymars:在set中找到那個詞是log(M),把count++,一共要做MN次 09/06 02:39
→ holymars:所以是MNlog(M) 09/06 02:39
→ hilorrk:哦哦 我指的是love大的multiset 不是您說的那個啦 09/06 02:40
推 holymars:喔喔...multiset確實沒有比較快... 09/06 02:42
推 loveme00835:我考慮的只是將每個物件的生命週期減短, 把所有工作都 09/06 02:45
→ hilorrk:您的方法的確比較快又省空間 跟我的直覺不能比啊 哈哈 09/06 02:46
→ loveme00835:丟給ctor來達成exception safety, 速度那麼重要也不用 09/06 02:46
→ loveme00835:物件來寫了啊... 09/06 02:46
→ hilorrk:是啊 所以說big-O減少不一定效率較高XD 用更primitive的 09/06 02:48
→ hilorrk:寫法還有很多東西可以加速..我想只是提個結構上的速度而已 09/06 02:49
推 holymars:這..如果MN都是10000,你的方法就是慢100倍 這不是效率 09/06 02:50
→ holymars:問題 是演算法問題啊XDDD 09/06 02:50
推 holymars:用multiset的意思就是 同一個字出現100次 就會存100次 09/06 02:54
→ holymars:但是你把一段一樣的字串存100次下來有什麼意思呢.. 09/06 02:54
→ loveme00835:所言甚是 = = 09/06 02:58