次のように定義された複雑なデータ構造があります。
array<array<array<vector<arc>, 2>, n_ports + 2>, n_times> destinations;
ここで、arrayとvectorはand の略std::array
でstd::vector
、n_ports と n_times はunsigned int
s andarc
ですstruct
:
struct node { uint port; bool pickup; uint time; };
struct arc { node destination; float cost; };
基本的に、トリプル (i,j,k) に0 <= i < n_times
, 0 <= j < n_ports+2
, 0 <= k < 2
, 弧のベクトルを関連付けますが、その次元は先験的に知ることはできません。
これらのベクトルは順次作成されず、それらの要素も順次作成されませんpush_back
。
私が抱えている問題は、本来あるべきよりも多くのアークを持っていることに気づき、これらは以前に作成されたアークの痕跡であり、ベクトルのサイズを変更する必要があったときに別の場所に移動 (またはコピー?) したのではないかと疑っています。
これは、私が実際に取り組んでいることから始めて、問題を表示するために作成した、私がやっていることの最も最小限の例です。
どんな助けでも大歓迎です。間違ったデータ構造を使用していますか? 私は自分の後に何かを片付ける必要がありますか?等