typedefを使えばvectorとlistの両方に使えるコードが
書けるそうですが、どういう事なのでしょうか?
typedef vector<string> s;
typedef list<string> s;
という書き方では後者のsが再定義されるのでエラーになりますし