vectorlistどのように使い分けますか?この様な質問を受けました。

そこで私は、vectorは配列でlistはリストだろう。
具体的な使い分けとなると、リストは切ったりつなげたりが得意でvectorは配列メモリが消費が少ない。
けれど、実際に表現するときに切ったりつなげたりして使う使い方なんて心当りがない。
中間地点への一つのデータを頻繁に削除・挿入するのだとしたら検索まで含めるとmapsetの方が早い気がします。
最初や最後の地点だとしたらlistでなくてもqueueで足りるはずです。
となると、メモリを多く消費して実例の見当たらない切ったりつなげたりの動作が必要になる場面が思い浮かばず、「vectorの方が優れています。」と言ってしまいました。

stlのデータ構造のどれを差し置いてもlistで表現するのが適切となるアルゴリズムやプログラムは存在しますか