二维向量与二维数组

时间:2015-06-05 23:11:44

标签: c++ arrays vector

我正在处理关于leetcode的面试问题。 Longest Palindromic Substring 在这个问题中,当我使用二维向量时,它达到了内存限制。 但是当我将其更改为二维数组时,它通过了测试。

似乎2-d向量比2-d数组占用更多内存。为什么? 如果有人能向我解释,我会非常合适。

1 个答案:

答案 0 :(得分:0)

为了加快插入std::vector<T>分配比所需更多的内存(通常最多2次),因此每次添加元素时都不必重新分配。这种极大加快了插入速度,但可能会使内存消耗增加一倍。

std::vector<T>.capacity()将为您提供向量的总容量(即:预分配元素的数量,它是在分配更多内存之前可以拥有的最大大小) 此外,std::vector<T>.shrink_to_fit()会将矢量容量设置为当前大小,从而减少内存消耗,但也会使下一次插入变慢。