2016年3月3日 星期四

STL心得

對我來說

C++比起C最大的好處

不是物件導向的開發方式(雖說這也是其中之一)

而是它有很多模板可以使用(STL)

提供了vector, queue, stack, list...

很多厲害的演算法一定脫離不了這些資料結構

而在github上看了很多高手的程式

觀察到大部分實作stack的時候不使用stack而改用vector

於是我深入研究一下

stack其實更偏向於container adapter

也就是說他是拿來裝其他container(vector, list, deque...)較多

而且他少了vector能隨機存取的優點,讓debug更不方便

因此如果我們使用vector並只在尾端增減的話就能完美地取代stack

但用stack也不是全沒好處

一來是可以很明確地告訴開發者這變數LIFO的機制

二來是我自己測試,stack在push & pop的時候比vector快一咪咪