看过《Thinking in C++ 2 edition Volume 2:Standard Libraries & Advanced Topics》?
在书里(英文版的,没找到中文的)提到有些区别,应该是:vector,list,deque:
vector:
The vector is intentionally made to look like a souped-up array, since it has array-style indexing but also can expand dynamically.vector is so fundamentally useful that it was introduced in a very primitive way early.
To achieve maximally-fast indexing and iteration, the vector maintains its storage as a single contiguous array of objects. This is a critical point to observe in understanding the behavior of vector. It means that indexing and iteration are lighting-fast, being basically the same as indexing and iterating over an array of objects. But it also means that inserting an object anywhere but at the end (that is, appending) is not really an acceptable operation for a vector.
list:
A list is implemented as a doubly-linked list and is thus designed for rapid insertion and removal of elements in the middle of the sequence (whereas for vector and deque this is a much more costly operation). A list is so slow when randomly accessing elements that it does not have an operator[ ]. It’s best used when you’re traversing a sequence, in order, from beginning to end (or end to beginning) rather than choosing elements randomly from the middle. Even then the traversal is significantly slower than either a vector or a deque, but if you aren’t doing a lot of traversals that won’t be your bottleneck.
该书建议使用vector。
有兴趣各位可以看看该书(www.BruceEckel.com)。