質問: CStringの動的配列を作る場合、CStringArrayとstd::vectorだとどっちの方が良いとかありますか?
回答: 3つの考え方があります。 (1)CStringArray が良い 簡単、明瞭。迷いが少ないです。何しろ16ビットの時代(MS-DOS + Windows 3.1)から存在しているんですからね。テンプレートじゃないところが潔いというか、初心者の方がコンパイルエラーで悩む場面が大幅に減ります。テンプレート絡みのエラーは慣れていないと大変。 ただ、MFC から抜け出せなくなってしまうとイヤかも。変な習慣が身についてしまった損かもしれません。 (2)std::vector が良い STL に慣れている人は(1)じゃ困るでしょう。std::for_each とかも使いたかったりするだろうから。コードの書き方があまりに違うので(1)は避けたいと思う筈。 将来的に STL に慣れたい人も(1)ではその機会を失うことになってしまう。そこのところの弊害も大きいかも知れません。 MFC を消極的に使っている人の場合は(2)です。MFC に関わりたくないけどやむを得ずやってるという場合とか。 で、STL の習慣も変と言えば変です。でも、それが身について損になるかというと、さすがに標準ライブラリですのでね。損ではないでしょう。 (3)両方 選ぶ必要も無いかも知れません。両方です。それぞれの特性を味わうつもりで。 視野を広く保つためにも有意義かもしれません。STL 一辺倒という感覚もまた良いものではないと思います。いろんなライブラリが存在しているわけですので、それぞれの良いところをご自身のコードの取り入れて行くのも大切であろうと思います。