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()释放空间;
-
-