C++基础学习之6 - STL解构

本文介绍了C++中的STL标准模板库,包括vector、list、map和deque等容器的特点和常见操作。vector作为动态数组,适合随机访问但插入删除效率低;list是双向链表,插入删除快但访问慢;map和set基于红黑树,提供O(logN)的查找速度,适用于按键访问。deque则是一个双端队列,支持两端操作和随机访问,常用于Command模式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        在C++编程里面,STL 是必不可少的,我们先列出来常用的几种容器:

      vector,list,Map,set,deque,queue

+ vector

        vector是一种动态数组,其内容在内存中是连续存放的,正是由于这种特征,决定了vector 的代表特征:

        随机访问速度很快,插入和删除效率较低。

        其内存分配 是按照 1、2、4、8、16…指数倍增长的(有效避免反复的内存分配和释放),内存增长示意图如下:

        

        先来看vector的几种初始化方式:

/** 初始化 - 方法1*/
vector<int> vec1;
for(int i=1;i<6;i++); // 通过push_back
    vec1.push_back(i);
/** 初始化 - 方法2*/
vector<int> vec2(5); // 或者 vec2(5,0)赋初值
for(int i=1;i<6;i++);   // 通过下标访问
    vec2[i]=i;
/** 初始化 - 方法3*/
int a[5] = {1,2,3,4,5};
vector<int> vec3(a,a+5); // 通过数组拷贝
/** 初始化 - 方法4*/
vector<int> vec4 {1,2,3,4,5}; // c++11新方法

        vector支持swap方式交换内存,这在两个vector之间进行数据交换时能够极大的提

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值