零基础学C++之高级篇二

零基础学C++之高级篇二零基础学C++之高级篇二STL标准模板库序列容器向量类模板双端队列类模板链表类模板关联式容器set类模板mutliset类模板map类模板mutlimap类模板算法非修正序列算法修正序列算法排序算法数值算法迭代器输出迭代器输入迭代器前向迭代器双向迭代器随机访问迭代器零基础学C++之高级篇二STL标准模板库序列容器向量类模板双端队列类模板链表类模板关联式容器s...
摘要由CSDN通过智能技术生成

零基础学C++之高级篇二

STL标准模板库

STL(Standard Template Library)是为了标准化组件提供类模板进行范型编程,STL技术是对原有C++技术的一种补充,具有通用性好、效率高、数据结构简单、安全机制完善等特点。

序列容器

向量类模板

向量vector是一种随机访问的数组类型,提供了对数组元素的快速、随机访问,以及在序列尾部快速、随机插入和删除操作,它是大小可变的向量,在需要时可以改变大小。
使用向量类模板需要创建vector对象,创建vector对象有以下几种方法:

std::vector name; //空对象
std::vector name(size); //具有size元素个数的对象
std::vector name(size,value); //具有size元素个数的对象,并将元素初值设置为value
std::vector name(myvector); //用现有的myvector创建一个对象,复制
std::vector name(first,last); //创建在指定范围内的向量

vector对象的主要成员函数

函数 说明
assign(first,last) 用迭代器first和last所管辖范围内的元素替换向量元素
assign(num,value) 用value的num个副本替换向量元素
at(n) 返回向量中第n个位置元素的值
back() 返回对向量末尾元素的引用
begin() 返回指向向量中第一个元素的迭代器
capcity() 返回当前向量最多可以容纳的元素个数
clear() 删除向量中所有元素
empty() 如果向量为空,返回true
end() 返回指向向量中最后一个元素的迭代器
erase(start,end) 删除迭代器start和end所管辖范围内的向量元素
erase(i) 删除迭代器i所指向的向量元素
front() 返回对向量起始元素的引用
insert(i,x) 把值插入向量中由迭代器i所指明的位置
insert(i,start,end) 把迭代器start和end所管辖范围内的元素插入到向量中由迭代器i指明的位置
insert(i,n,x) 把x的n个副本插入到向量中由迭代器i指明的位置
max_size() 返回向量的最大容量
pop_back() 弹出向量最后一个元素
push_back(x) 把值x放在向量末尾
rebegin() 返回一个反向迭代器,指向向量末尾元素之后
rend() 返回一个反向迭代器,指向向量起始元素
reverse() 颠倒元素的顺序
resize(n,x) 重新设置向量大小,新元素的初始值为x
size() 返回向量的大小,元素的个数
swap(vector) 交换两个向量的内容
双端队列类模板

双端队列deque是一种随机访问的数据类型,提供了在序列两端快速插入和删除操作的功能,它可以在需要的时候修改其自身的大小,主要完成标准c++数据结构中队列的功能。
其创建方法与创建序列类模板对象方法一致,成员函数大部分与序列类模板一致,不同的如下:

函数 说明
pop_front() 弹出双端队列第一个元素
push_front(x) 把值x放在双端队列开始
链表类模板

链表list即双向链表容器,它不支持随机访问,访问链表元素要指针从链表的某个端点开始,插入和删除操作所花费的时间是固定的,和该元素在链表中的位置无关。list在任何位置插入和删除都很快。
创建链表对象的方法与创建vector对象方法一致,其主要成员函数大部分与vector一致,不同的如下:

函数 说明
pop_front() 弹出链表第一个元素
push_front(x) 把值x放在链表开始

关联式容器

关联式容器是STL提供的容器的一种,其中的元素都是经过排序的,它主要通过关键字的方式来提高查询的效率,关联容器包括set、mutliset、map、mutlimap和hash table。

set类模板

set类模板又称为集合类模板,一个集合对象

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值