list when you nee to add/delete elements very often but you have to read it rarely and when you access it's elements, you do so in sequence. vector when you know that the size won't change much or when you need random access or to read multiple times
deque somewhat between list and vector map when you need to associate a value to an index stack / queue have their particular FILO / FIFO access