C++标准模板库(STL)学习和使用笔记之二

常用的容器根据其是否有序排列可以分为:顺序容器和关联容器。且所有容器都是类模板。可以看到的是在C++的标准库中模板和泛型编程以及运算符重载等技术被广泛的应用,而我们实际开发中用到的最多的是面向对象的技术,所以标准库的代码看起来很费劲。

顺序容器:array,vector,deque,list,forward_list。这些容器中的元素是无序的。

关联容器:set,multiset,map,multimap。这些容器中的元素在放入容器时就被放入到合适的位置上,因此插入元素是不能任意指定插入的位置,即它们是有序的。

所有容器都有的成员函数如下:

  • int size():返回容器对象中元素的个数。
  • bool empty():判断容器对象是否为空。
  • begin():返回指向容器中第一个元素的迭代器。
  • end():返回指向容器中最后一个元素后面的位置的迭代器。
  • rbegin():返回指向容器中最后一个元素的反向迭代器。
  • rend():返回指向容器中第一个元素前面的位置的反向迭代器。
  • erase(...):从容器中删除一个或几个元素。
  • clear():从容器中删除所有元素。

顺序容器还有以下常用成员函数:

  • front():返回容器中第一个元素的引用。
  • back():返回容器中最后一个元素的引用。
  • push_back():在容器末尾增加新元素。
  • pop_back():删除容器末尾的元素。
  • insert(...):插入一个或多个元素。

要访问容器中的元素,就要用到迭代器。它是容器和算法之间的中介,它其实是一个拥有指针功能的类,为了实现这个功能标准库内部也做了很多的工作。

迭代器可以根据其迭代的方向进行分类,例如,可以将迭代器分为:

正向迭代器      容器类名::iterator  迭代器名;

常量正向迭代器     容器类名::const_iterator  迭代器名;

反向迭代器    容器类名::reverse_iterator  迭代器名;

常量反向迭代器    容器类名::const_reverse_iterator  迭代器名;

还可以按功能进行分类,这里我觉得是必须要理解和记忆的。例如,按照迭代器的功能强弱可以分为:

  • 单向迭代器。假设 p 是一个正向迭代器,则 p 支持以下操作:++p,p++,*p。
  • 双向迭代器。双向迭代器具有正向迭代器的全部功能。除此之外--pp--都可以。
  • 随机访问迭代器。随机访问迭代器具有双向迭代器的全部功能。若 p 是一个随机访问迭代器,i 是一个整型变量或常量,则 p 还支持以下操作:p+=i:使得 p 往后移动 i 个元素。p-=i:使得 p 往前移动 i 个元素。p+i:返回 p 后面第 i 个元素的迭代器。p-i:返回 p 前面第 i 个元素的迭代器。p[i]:返回 p 后面第 i 个元素的引用。

如果知道了不同容器的内存分布情况,可以很快的知道不同容器的迭代器支持什么样的功能。

容器迭代器功能
array随机访问
vector随机访问
deque随机访问
list双向
set/multiset双向

map/multimap

双向
forward_list单向
stack不支持迭代器
queue不支持迭代器

标准库算法的实现都要通过操作迭代器来实现,可以看到不同容器的迭代器有不同的功能,因此它们所支持的算法也有所不同。虽然有一些通用的算法,但是如果这个容器本身有相同的算法的话,那么就应该使用容器本身的算法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
系统根据B/S,即所谓的电脑浏览器/网络服务器方式,运用Java技术性,挑选MySQL作为后台系统。系统主要包含对客服聊天管理、字典表管理、公告信息管理、金融工具管理、金融工具收藏管理、金融工具银行卡管理、借款管理、理财产品管理、理财产品收藏管理、理财产品银行卡管理、理财银行卡信息管理、银行卡管理、存款管理、银行卡记录管理、取款管理、转账管理、用户管理、员工管理等功能模块。 文中重点介绍了银行管理的专业技术发展背景和发展状况,随后遵照软件传统式研发流程,最先挑选适用思维和语言软件开发平台,依据需求分析报告模块和设计数据结构,再根据系统功能模块的设计制作系统功能模块图、流程表和E-R图。随后设计架构以及编写代码,并实现系统能模块。最终基本完成系统检测和功能测试。结果显示,该系统能够实现所需要的作用,工作状态没有明显缺陷。 系统登录功能是程序必不可少的功能,在登录页面必填的数据有两项,一项就是账号,另一项数据就是密码,当管理员正确填写并提交这二者数据之后,管理员就可以进入系统后台功能操作区。进入银行卡列表,管理员可以进行查看列表、模糊搜索以及相关维护等操作。用户进入系统可以查看公告和模糊搜索公告信息、也可以进行公告维护操作。理财产品管理页面,管理员可以进行查看列表、模糊搜索以及相关维护等操作。产品类型管理页面,此页面提供给管理员的功能有:新增产品类型,修改产品类型,删除产品类型。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值