
STL教程
xsgaaa
某985机械电子工程研究生
展开
-
STL教程(一)——STL的组成部分
如需转载,请注明出处。经常编一些程序,感觉STL很有用,所以本次着手翻译一些文章,写个STL教程,以后用的话好直接查询。一、容器容器可以描述为包含相同类型数据的对象。容器用于实现不同的数据结构,例如数组,列表,树等。以下是提供所有容器的详细信息以及头文件和与之关联的迭代器类型的容器:容器 描述 头文件 迭代器 vector vecto...原创 2019-08-06 14:59:41 · 1701 阅读 · 0 评论 -
STL教程(二)——Vector
如需转载,请注明出处。Vector和普通数组之间的差异:普通数组遵循静态方法,意味着它的大小在运行时不能更改,而vector实现动态数组意味着它在附加元素时自动调整大小。向量与动态数组相同,能够在插入或删除元素时自动调整自身大小,其存储由容器自动处理。向量元素放置在连续存储中,以便可以使用迭代器访问和遍历它们。在向量中,最后插入数据。最后插入需要不同的时间,因为有时可能需要扩展阵列。删除...原创 2019-08-06 15:34:52 · 181 阅读 · 0 评论 -
STL教程(三)——list
如需转载,请注明出处。感觉list无需说过多的内容,原理大家都懂得。直接调用接口就行了。因此熟悉如何用其成员函数,并在适当的时候用到它就行。List是一个连续的容器,而vector是一个非连续的容器,即list将元素存储在一个连续的内存中,而vector存储在一个非连续的内存中。 在Vector中间插入和删除是非常昂贵的,因为它需要花费大量时间来移动所有元素。 链表克服了这个问题,并使用...原创 2019-08-06 16:00:48 · 288 阅读 · 0 评论 -
STL教程(四)——deque
如需转载,请注明出处。deque前面带有字母d,是double的含义,它是双端队列,而是queue是单端的。以下双端队列均指deque。示意图如下:双端队列是序列容器,两端具有扩展和收缩的特征。它们与向量类似,但在插入和删除元素时更有效。与向量不同,可能无法保证连续的存储分配。双端队列基本上是数据结构双端队列的实现。队列数据结构允许仅在末尾插入并从前面删除。这就像现实生活中的...原创 2019-08-06 16:19:41 · 333 阅读 · 0 评论 -
STL教程(五)——Set
如需转载,请注明出处。集合是一种关联容器,其中每个元素必须是唯一的,因为元素的值标识它。一旦将元素添加到集合中,就无法修改该元素的值,但可以删除并添加该元素的修改值。Set相关的一些基本函数:begin() - 返回集合中第一个元素的迭代器。end() - 返回跟随集合中最后一个元素的理论元素的迭代器。size() - 返回集合中的元素数。max_size() - 返回集合可...原创 2019-08-06 16:38:28 · 167 阅读 · 0 评论 -
STL教程(六)——multiset
如需转载,请注明出处。Multisets是一种类似于set的关联容器,但多个元素可以具有相同的值。Multisets是C ++ STL(标准模板库)的一部分。 Multisets是关联容器,如Set,用于存储排序值(值本身就是T类型的键),但与Set只存储唯一键的Set不同,multiset可以有重复键。默认情况下,它使用‘<’运算符来比较键。可以插入或删除多集中元素的值,但不...原创 2019-08-06 16:51:44 · 736 阅读 · 0 评论 -
STL教程(七)——map
如需转载,请注明出处。序列容器是管理数据的宝贵工具,但对大多数应用程序而言,序列容器不提供方便的数据访问机制。举个简单的示例,当我们用它处理姓名和地址时,在这种场景下,序列容器可能并不能如我们所愿。一种典型的方法是通过名称来寻找地址。如果记录保存在序列容器中,就只能通过搜索得到这些数据。相比而言,map 容器提供了一种更有效的存储和访问数据的方法。map 容器是关联容器的一种。在关联容器中,...原创 2019-08-06 17:04:47 · 287 阅读 · 0 评论 -
STL教程(八)——multimap
如需转载,请注明出处。Multimaps是C ++ STL(标准模板库)的一部分。 Multimaps是关联容器,如map,用于存储已排序的键值对,但与仅存储唯一键的map不同,multimap可以具有重复键。默认情况下,它使用 '<' 运算符来比较键。例如:Employees的multimap,其中员工年龄是键,名称是值,可以表示为:键 值 23 Nikit...原创 2019-08-06 19:22:59 · 312 阅读 · 0 评论