前言
作为c++ stl常用的容器之一,vector的使用频率一直很高,由于具备一系列的操作函数,使得它能很方便的存储和读写,所以vector在解题时应用很广。
很多时候,在能够使用vector和数组的情况之下,我们会使用vector,因为它的操作函数确实方便。
虽然在使用时,也会思考vector的时间复杂度到底相对数组有多大。
但是由于写过的题目,基本不会因为数组和vector超时(或者说可能是没发现),因此一直搁置。
最近我力扣做题,注意到一个问题。
同样一道题,使用数组和使用vector,效率相差很大。
vector与数组效率差
具体有多大呢?倍率上并不大,vector大约是数组的1.5倍。
但是要知道我仅仅是开了一个2000容量的int数组。
如果说20万呢?甚至100万呢?
抱着好奇心,我看了其他人做的一些测试博客,发现当数据量达到几十万的级别时,效率差已经开始体现了。基本在10倍时间复杂度左右,百万级别甚至会相差整整25倍。
所以,在使用vector时,一旦数据达到几十万的级别,就需要谨慎使用。