對我來說
不是物件導向的開發方式(雖說這也是其中之一)
而是它有很多模板可以使用(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快一咪咪
沒有留言:
張貼留言