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