こんにちは、私はベクトルの使用についての質問がC + +で、私はランダムな動きでコンテナを介して粒子の動きをシミュレートする問題に取り組んでいます。粒子を追加したり削除したりする必要があります。これは特定の基準を満たすことができないため、ベクトルクラスが非常に便利だとわかりましたが、私はC++を初めて使用しています。std :: vectorディメンション、 "テトリス"シェイプは使用できますか?
定義した2次元配列は、長方形か正方形のどちらかに限定されていますか?私は、各容器に粒子の位置を保存するだけです。私が恐れているのは、私の行列が次のようになるということです:
| | | | |
| | | | |
| | | | |
| | | | |
(4x4の場合)列の入力が各ビン/コンテナ内の粒子の位置であり、ビンとビンとの粒子数が異なる場合、このようなものが可能かどうか疑問に思う。
| | | | |第1ビン内の4つの粒子
| | |第2のビン内の2個の粒子を含み、占有されたメモリは上記より2倍小さい。
| | | | | | | | | | | | | | | | |これは3番目のビン内にたくさんあります。
また、私が自分のアルゴリズムを実装する方法に応じて、行の要素を削除する(行のサイズを小さくする)か、要素を行に追加する(行のサイズを大きくする)か、列に追加する必要があります。ときに、最初にvector<vector<Particle> >
ベクターは、一次元のみを持っています。あなたは(「ギザギザ」)好きならベクトルのベクトルを持っている、または多次元(「長方形」)アレイのためBoost.MultiArrayを使用することができます。 –