余談だけどイテレータはコンテナの種類に依らず
一様な方法でコンテナの中身にアクセスする手段じゃん?

たとえばranged-forマップのイテレータから直接取り出せるのはキーと値のペアなんだけど
for(const auto& a : container){
(*it).second
って書かないといけないからstd::pairにoperator Type()みたいな演算子があると嬉しいんだけどヤバいかな
http://ideone.com/eH1XCR