0

まず、はい、私は C++ ベクトルを初めて使用します。

私の質問は、なぜ私のベクトルが空だと思いますか?

私はグローバル変数を持っています:

vector<int> parentVector;

さて、これはグローバル変数であり、どのサイズにするべきかわからないため、プログラムの後半でのみ、ある時点でこれを行います。

//numberOfNodes = 8 in current example
parentVector.reserve(numberOfNodes);

少しして、ベクトルの最初の要素に値を代入しようとしましたが、うまくいきません:

parentVector[0] = -1;

また、次のことも行いますが、値は割り当てられません。

//nextNode.node and currentNode.node is between the range of 1 - 8, thus the - 1.
parentVector[nextNode.node - 1] = currentNode.node - 1;

編集: ご回答ありがとうございます。 resize() は機能しました。

4

1 に答える 1

3

Reserving space in a vector using std::vector::reserve is not the same as adding elements to it. After reserving the vector is still empty. Use std::vector::resize instead.

于 2013-10-27T12:57:58.330 に答える