史上最全的C++面试宝典(七)—— C++ STL

本文是C++面试的精华指南,重点介绍了STL(标准模板库)的容器部分,包括vector、deque和list的特性和使用场景。同时,列举了关于STL的常见面试题,如vector和list的区别、map与set的异同以及unordered_map的特性等,帮助读者理解和掌握C++ STL的关键概念。
摘要由CSDN通过智能技术生成

参考:https://www.runoob.com/cplusplus/cpp-tutorial.html

本教程旨在提取最精炼、实用的C++面试知识点,供读者快速学习及本人查阅复习所用。

目录

第七章  C++ STL(标准模板库)

7.1  容器

7.2  相关面试题


第七章  C++ STL(标准模板库)

STL(Standard Template Library),即标准模板库,是一个具有工业强度的,高效的C++程序库。STL中包括六大组件:容器、迭代器、算法、仿函数、迭代适配器、空间配置器。

7.1  容器

STL中的常用容器包括:序列式容器(vector、deque、list)、关联式容器(map、set)、容器适配器(queue、stack)。

7.1.1 序列式容器

1)vector

vector是一种动态数组,在内存中具有连续的存储空间,支持快速随机访问。由于具有连续的存储空间,所以在插入和删除操作方面,效率比较慢。其常用操作如下:

//需要包含头文件
#include <vector>

//1.定义和初始化
vector<int> vec1;    //默认初始化,vec1为空
vector<int> vec2(vec1);  //使用vec1初始化vec2
vector<int> vec3(vec1.begin(),vec1.end());//使用vec1初始化vec2
vector<int> vec4(10);    //10个值为0的元素
vector<int> vec5(10,4);  //10个值为4的元素

//2.常用操作方法
//2.1 添加函数
vec1.push_back(100);            //尾部添加元素
vec1.insert(vec1.end(),5,3);    //从vec1.back位置插入5个值为3的元素

//2.2 删除函数
vec1.pop_back();              //删除末尾元素
vec1.erase(vec1.begin(),vec1.begin()+2);  //删除vec1[0]-vec1[2]之间的元素,不包括vec1[2]其他元素前移
vec1.clear();                 //清空元素,元素在内存中并未消失,通常使用swap()来清空
vector<int>().swap(V);        //利用swap函数和临时对象交换内存,交换以后,临时对象消失,释放内存。

//2.3 遍历函数
vec1[0];        //取得第一个元素
vec1.at(int pos);     //返回pos位置元素的引用
vec1.front();  //返回首元素的引用
vec1.back();  //返回尾元素的引用
vector<int>::iterator begin= vec1.begin();  //返回向量头指针
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值