std::vector::push_back()
を呼び出すときに、実際に必要なメモリをさらに割り当てることが再配分の仕組みで分かっています。 通常容量が想定...乗数2倍または黄金比数と〜1.618でstd :: vector :: resizeとstd :: vector :: push_backで償却する
を育て、次のように、私たちは、要素を追加します。
std::vector<int> v;
for(unsigned i = 0; i < 100000; ++i)
{
v.resize(v.size() + 1);
}
は、それは、ベクターの容量が "であることが保証されています再配分が行われる場合は「倍増」されますか? つまり、「+1サイズ変更」はpush_back
の場合と同じ方法でメモリを割り当てますか?
純粋な実装依存のものですか?
私はこの質問を理解しません。あなたはすでに、容量は通常2倍(すなわち倍増)**または**黄金比で増加すると述べています。 – user463035818
@ tobi303私はOPが 'push_back'と比較して' resize'について質問していると思います。 –
@ChrisDrewああ、今私は質問を理解しています;)、私はまだ改善することができると思うが – user463035818