STL中的Map和Vector的内部实现

本文介绍了STL中Map和Vector的基本概念及内部实现。Map以key-value对的形式存储数据,key按升序排列。Vector的大小表示已有元素数量,容量则指最大可存储元素数,为避免二次分配,通常容量大于大小。在构造或操作Vector时,合理预估容量能提升性能。示例代码展示了如何调整Vector的容量,包括resize、clear和shrink_to_fit函数的使用。
摘要由CSDN通过智能技术生成


这里写图片描述

两个关键大小:
大小:size=_Mylast - _Myfirst;
容量:capacity=_Myend - _Myfirst;
分别对应于resize()、reserve()两个函数。
size表示vector中已有元素的个数,容量表示vector最多可存储的元素的个数;为了降低二次分配时的成本,vector实际配置的大小可能比客户需求的更大一些,以备将来扩充,这就是容量的概念。即capacity>=size,当等于时,容器此时已满,若再要加入新的元素时,就要重新进行内存分配,整个vector的数据都要移动到新内存。二次分配成本较高,在实际操作时,应尽量预留一定空间,避免二次分配。

构造一个vector时,首要参数一定是元素个数。需要避免二次分配,可以使vector性能最佳


#include <iostream>
 2 #include <vector>
 3 int main()
 4 {
 5     std::vector<int> v;
 6     std::cout << 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值