juice Asked:2021-11-23 19:13:47 +0000 UTC2021-11-23 19:13:47 +0000 UTC 2021-11-23 19:13:47 +0000 UTC 如何获得具有所需容量的向量? 772 方法调用后新创建的向量reserve(x)可以capacity多x吗?如果是这样,为了获得所需的向量capacity,是否必须首先填充向量? std::vector a; a.reserve(x); // ... insert x elements ... a.shrink_to_fit(); c++ 1 个回答 Voted Best Answer KoVadim 2021-11-23T19:19:39Z2021-11-23T19:19:39Z 调用reserve(x)方法后新建的vector的容量能大于x吗? 是的,没有人禁止他 如果是这样,是不是为了得到一个你需要的容量的向量,你必须先填充这个向量? 不,不是事实。https://en.cppreference.com/w/cpp/container/vector/shrink_to_fit 将容量()减少到大小()是一个不具约束力的请求。是否满足请求取决于实现。 也许,但不是必需的。 如何获得具有所需容量的向量? 做什么的?如果这是节省内存或其他类似的东西,那么编写自己的向量可能会更好,这将分配“正确”的内存量。如果这些是高负载应用程序或嵌入式应用程序,每一点都在挣扎,答案是一样的。
是的,没有人禁止他
不,不是事实。https://en.cppreference.com/w/cpp/container/vector/shrink_to_fit
也许,但不是必需的。
做什么的?如果这是节省内存或其他类似的东西,那么编写自己的向量可能会更好,这将分配“正确”的内存量。如果这些是高负载应用程序或嵌入式应用程序,每一点都在挣扎,答案是一样的。