1.各种不同的容器
(1)stack 栈,栈是一种只在一端进,在同一端出的容器,也就是fist in last out(FILO),栈的支持的操作有增加(push),删除(pop)。获取顶端元素
屏幕快照 2016-08-22 23.14.27.png
当使用pop函数时,删除的永远是最顶端的元素。另外stack只能访问顶端元素,所以无法对stack进行遍历
(2)Queue队列,和stack相反,Queue是一种从一端进,在另一端出的数据结构,也就是fast in fist out(FIFO),这就像我们平时排队买饭一样。Queun可以进行删除(pop),增加(push),获取前端元素(front),获取后端元素(back)等操作。
屏幕快照 2016-08-22 23.38.44.png
同样,队列只能访问最前和最后的元素,所以也无法对队列进行遍历。
(3)map,一种关联容器,map是一种关联容器,存放key/value键值对,注意在map中不允许出现重复的key,map的一些操作如下
(4)mulitiMap,基本上和map特性差不多,但在Multimap中允许出现重复的key。
(5)set,关联容器,关键字即值,只保存关键字的容器,我们可以通过关键字来获取与之对应的值,在set中,默认的是less排序,比如下面的例子:
屏幕快照 2016-08-24 21.45.40.png
屏幕快照 2016-08-24 21.45.52.png
以下是set一些基本算法
屏幕快照 2016-08-24 21.58.44.png
屏幕快照 2016-08-24 22.02.43.png 屏幕快照 2016-08-24 22.06.39.png
于set相关的算法有很多,就不一一例举。
还要注意的是,set不允许通过迭代器改变对象成员
2.仿函数
仿函数又称为函数对象,其作用相当于一个函数指针,可以用一个相应的类型数据接受这个函数处理的对象。下面是一个仿函数的实例
屏幕快照 2016-08-24 22.31.55.png
屏幕快照 2016-08-24 22.32.09.png
set1排序方式由自定义的仿函数决定,需要注意的是,仿函数必须要重载operator(),
网友评论