- store elements congruently
- fast random access
- inserting/removing elements in the middle of the sequence requires shifting other elements over in order to keep them congruent in memory
- increasing size of the vector may require all elements be moved if more memory needs to be allocated
Lists:
- elements stored as individual nodes (not congruent)
- no random access, only sequential access
- inserting/removing elements in the middle of the sequence is fast. Does not require any other elements be moved.
- increasing size of the list will never require any elements to be moved.
Vectors are usually the better option. But it depends on what you're doing with the container.