|
|
|
|
|
by Galanwe
945 days ago
|
|
I guess I still don't clearly see what the leading question is pointing at. Should that be: _why was it not important to optimize for vector pop front?_ If that is the case, then I feel like the overall philosophy of vector vs deque answers that question. Vectors are tailored to be good at random access and back insertion/removal, at the expense of wasting capacity.
Overall, that means vectors are focused for append-mostly workloads, thus why they often have and aggressive capacity reallocation factor. Having a vector double down on unused capacity consumption by allowing constant time front removal was, I guess, deemed useless, since one would most likely be using a deque for such access patterns. |
|
It's just:
- Look at these big-O, see that pop front isn't O(1)
- Here's a proposed pop front that is O(1) (move the pointer forward)
- Reason about why they didn't choose that.
It's already an aha moment for people to realize that the capacity left at front is generally harder to use than keeping unused capacity at the end. In the spirit of the leading question that aspect is something the reader can reasonably realize after thinking about it, not something that is intended to already be obvious before you start thinking.