STL
参考
jiao::STL
容器:序列
vector
-
可以自动扩展大小的动态数组。
-
其扩容规则为:
-
当数组大小不够容纳新的元素时,
new
一片更大的空间,将旧的元素复制过去; -
更大空间的大小不确定,一般为旧空间的 \(1.5\) 倍或 \(2\) 倍。
-
创建
C++ | |
---|---|
1 2 3 4 5 |
|
空间
C++ | |
---|---|
1 2 3 4 |
|
-
resize(n)
等价于resize(n, 0)
:-
如果已有元素,则不变;
-
如果没有元素,则赋值为
0
或自定义的值; -
如果调整了一个更小的值,其实只是将
end()
前移了。-
越界访问仍然可以访问到元素,
size()
变了,capacity()
没变; -
push_back
会覆盖之前的值; -
可以通过
shrink_to_fit()
释放空间;
-
-