STL学习与使用(转载)

1.STL组成

  STL有三大核心部分:容器(Container)、算法(Algorithms)、迭代器(Iterator),容器适配器(containeradaptor),函数对象(functor),除此之外还有STL其他标准组件。

通俗的讲:

  • 容器:装东西的东西,装水的杯子,装咸水的大海,装人的教室……STL里的容器是可容纳一些数据的模板类。
  • 算法:就是往杯子里倒水,往大海里排污,从教室里撵人……STL里的算法,就是处理容器里面数据的方法、操作。
  • 迭代器:往杯子里倒水的水壶,排污的管道,撵人的那个物业管理人员……STL里的迭代器:遍历容器中数据的对象。对存储于容器中的数据进行处理时,迭代器能从一个成员移向另一个成员。他能按预先定义的顺序在某些容器中的成员间移动。对普通的一维数组、向量、双端队列和列表来说,迭代器是一种指针。

2.容器使用——vector/deque/list/set/multisets/map/multimaps/

2.1 vector:动态数组,向量。(具体用法看代码)

2.2 queue:双端队列:支持vector不支持的push_front()

2.3 list:链表,双向链表,只能顺序访问,不能使用[]进行随机访问

2.4 set和multisets:集和多集:默认是排好序的

·set:包含元素唯一
·multisets:包含元素可不唯一

2.5 map和multimaps:映射和多重映射

  set中的key和value是Key类型的,而map中的key和value是一个pair结构中的两个分量。Map支持下表运算符operator[],用访问普通数组的方式访问map,不过下标为map的键。在multimap中一个键可以对应多个不同的值。

赞赏

微信赞赏支付宝赞赏

发表评论

邮箱地址不会被公开。 必填项已用*标注