システムが開けるファイル数に制限があり、最大でも10個までしか開けません。
それを擬似的に可能にしようとしてあのようなコードになりました。

mapかvectorかはどちらがよいのかわからずmapを使ったのと、
スレッドセーフ云々は見づらくなるので省きました。