C++ では、a を初期化しstd::vector v(100);
てそれを試みresize()
ないreserve()
場合、capacity()
常に同じままであることが保証されますか? パフォーマンス上の理由から、メモリの割り当て/解放/再割り当て/その他が行われていないことを確認したいと思います。(はい、パフォーマンスに影響します。私の関数は常に呼び出され、すぐに返さなければなりません)。
すべてを再開する:
std::vector<float> v;
// somehow, `v' is initialized to have 100 elements
void f() { // this function must return _very_ quickly
/* do some processing, without ever calling v.resize() or v.reserve(), but
accesing v.size() and v[i] all the time */
/* it is guaranteed that no system calls (such as memory management)
will take place here? */
} // no objects on the stack whose destroyers might try to `delete' anything.