まず最初に、C++ を学習する場合は、C++11 を学習します。以前の C++ 標準は 2003 年にリリースされたので、すでに10年前のものです。それはITの世界ではたくさんあります。C++11 のスキルは、今後の C++1y (おそらく C++14) 標準にもスムーズに変換されます。
std::vectorとの主な違いstd::arrayは、動的 (サイズと割り当て) と静的ストレージです。したがって、常に、たとえば 4x4 のマトリックス クラスが必要な場合は、std::array<float, 4*4>問題なく実行できます。
これらのクラスはどちらも.data()、互換性のあるポインターを生成するメンバーを提供します。ただし、std::vector<std::vector<float>>連続し16*sizeof(float)たメモリを占有しないことに注意してください (動作しv[0].data() ません)。動的なサイズのマトリックスが必要な場合は、singlevectorを使用してサイズを変更しwidth*heightます。
要素へのアクセスが少し難しくなるため (v[width * y +x]またはv[height * x + y])、行/列のペアで任意のフィールドにアクセスできるようにするラッパー クラスを提供することをお勧めします。
Cスタイルの配列についても言及したので。std::array同じタイプのストレージを処理するためのより優れたインターフェイスを提供するため、優先する必要があります。上の静的配列で得られるものは何もありませんstd::array。