STL学习总结

C++标准模板库

C++ Standard Template Libarary

STL组件

容器(Container)——管理某类对象的集合

迭代器(Iterator)——在对象集合上进行遍历

算法(Algorithm)——处理集合内的元素

容器适配器(container adapter)

函数对象(functor)


STL容器元素的条件

1.必须能够通过拷贝构造函数进行复制

2.必须能够通过赋值运算符完成赋值操作

3.必须能够通过析构函数完成销毁工作

4.序列式容器元素的默认构造函数必须可用

5.默写动作必须定义operator==,例如搜寻操作

6.关联式容器必须定义出排序准则,默认情况下是重载operator<

对于基本数据类型(int,long,char,double,...)而言,以上条件总是满足

STL容器的共同操作

1.赋值(assignment)和交换(swap)

(swap)用于提高赋值操作效率

2.与迭代器(iterator)相关的操作

begin()——返回一个迭代器,指向第一个元素

endl()——返回一个迭代器,指向最后一个元素之后

rebegin()——返回一个逆向迭代器,指向逆向遍历的第一个元素

rend()——返回一个逆向迭代器,指向逆向遍历的最后一个元素之后

3.元素操作

insert(pos,e)——将元素e的拷贝安插于迭代器pos所指的位置

erase(beg,end)——移除[beg,end]区间内的所有元素

clear()——移除所有元素

vector

1.vector模拟动态数组

2.vector的元素可以是任意类型T,但必须具备赋值和拷贝能力(具有public拷贝构造函数和重载的赋值操作符)

3.必须包含的头文件#include<vector>

4.vector支持随机存储

5.vector的大小(size)和容量(capacity)

size返回实际元素个数

capacity返回vector能容纳的元素最大数量。如果插入元素时,元素个数超过capacity,需要重新配置内部存储器。

map/multimap

1.使用平衡二叉树管理元素

2.元素包含两部分(key,value),key和value可以是任意类型

3.根据元素的key自动对元素排序,因此根据元素的key

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值