我正在处理关于leetcode的面试问题。 Longest Palindromic Substring 在这个问题中,当我使用二维向量时,它达到了内存限制。 但是当我将其更改为二维数组时,它通过了测试。
似乎2-d向量比2-d数组占用更多内存。为什么? 如果有人能向我解释,我会非常合适。
答案 0 :(得分:0)
为了加快插入std::vector<T>
分配比所需更多的内存(通常最多2次),因此每次添加元素时都不必重新分配。这种极大加快了插入速度,但可能会使内存消耗增加一倍。
std::vector<T>.capacity()
将为您提供向量的总容量(即:预分配元素的数量,它是在分配更多内存之前可以拥有的最大大小)
此外,std::vector<T>.shrink_to_fit()
会将矢量容量设置为当前大小,从而减少内存消耗,但也会使下一次插入变慢。