STL
文章平均质量分 91
对于C++的STL的使用和模拟实现
Yair_
这个作者很懒,什么都没留下…
展开
-
list
T _data;原创 2024-05-13 13:47:12 · 238 阅读 · 0 评论 -
vector
注意:使用resize接口时,val是一个缺省的,默认给vector元素的初始值。当改变的size小于原本的size,那么直接截断多余的部分;当改变的size大于原本的size,那么多余的部分用val的值填充;当改变的size大于原本的capacity,那么会对原本的vector进行扩容操作。具体文档如下:reseve开辟空间在vs下capacity是按照1.5倍进行增长的,g++是按照2倍进行增长的。2倍增长时间效率更优,但可能会造成空间上的浪费(相对于1.5倍增长)。不需要纠结具体多少倍比较合适,按照实原创 2024-05-10 19:25:35 · 1117 阅读 · 0 评论 -
string
2、resize(size_t n) 与resize(size_t n, char c)都是将字符串中的有效字符个数改为n个,第二个实参默认为0。假如n的大小大于原来的底层空间,那么就会扩容到n,复制原来的字符串,多余的空间用第二个实参填充。假如小于原来的大小,那么就截取多余的字符,但是底层的空间并不会缩小。3、reserve(size_t res_arg = 0 ):为string预留空间,不改变有效元素个数,当实参小于原底层空间大小时,也不会改变容量大小。('\0'不是有效字符)原创 2024-05-08 15:23:36 · 533 阅读 · 0 评论