だから私はベクトルを持っています。それは最初は空ですが、確かにいっぱいになります。構造のインスタンスが含まれています。
struct some {
int number;
MyClass classInstance;
}
/*Meanwhile later in the code:*/
vector<some> my_list;
そうなったとき、ベクトルに値を追加したいのですが、それを1つ大きくする必要があります。しかしもちろん、それを行うための変数を作成したくありません。これが要求されていない場合、私はこれを行います:
//Adding new value:
some new_item; //Declaring new variable - stupid, ain't it?
my_list.push_back(new_item); //Copying the variable to vector, now I have it twice!
代わりに、new_item
サイズを大きくしてベクトル内に を作成したいと思います - 見てください:
int index = my_list.size();
my_list.reserve(index+1); //increase the size to current size+1 - that means increase by 1
my_list[index].number = 3; //If the size was increased, index now contains offset of last item
しかし、これはうまくいきません!スペースが割り当てられていないようです -ベクトル添え字が範囲外エラーになります。