![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
STL
文章平均质量分 68
C++标准模板库
Black.Spider
宝剑锋从磨砺出,梅花香自苦寒来
展开
-
vector容器的扩容原理
仔细分析,第5次扩容时,需要寻找16的新空间,第4次释放了8,第3次释放了4,第2次释放了2,第1次释放了1,所以 1 + 2 + 4 + 8 = 15 < 16,也就意味着,之前释放的空间,永远无法被下一次的扩容利用,这对内存与cache是非常不友好的。最普遍的情况下,当扩容因子为2时,最好的评价时间复杂度为2N,发生在N等于2的n次幂时,最差为3N,发生在N等于2的n次幂加1时。总消耗为N+(N-1)/(K-1)。每次扩容之后capacity的情况为:1,2,3,4,6,9,13,19,28。转载 2020-03-01 16:20:59 · 2142 阅读 · 4 评论 -
STL关联容器之map使用详解
插入数据时,应尽可能的避免额外的构造和析构开销,因此建议选用emplace,而不是insert。但是注意的是,key存在时,insert效率反而更高。删除数据时,目标迭代器就会失效,注意不能再对目标迭代器做任何操作。查找目标key时,为避免二次查找,应使用find方法以提高代码效率。原创 2024-04-01 19:41:42 · 954 阅读 · 1 评论 -
STL序列容器之vector初始化
【代码】STL序列容器之vector初始化。原创 2020-01-26 18:28:25 · 3100 阅读 · 1 评论