stl的基本概念

本文介绍了C++ STL(标准模板库)的基本概念,包括算法、容器和迭代器。STL提供了如vector、deque、list等序列式容器,以及set、map等关系型容器。迭代器作为容器的导航工具,允许访问和操作容器中的元素。算法如排序、查找等通过迭代器操作元素。此外,文章还展示了如何在实际代码中使用和操作STL容器,包括插入、删除、遍历等操作。
摘要由CSDN通过智能技术生成

1.STL(Standard Template Library,标准模板库)是惠普实验室开发的,在被引入C++之前该技术就已经存在了很长的一段时间。

2.STL的代码从广义上讲分为三类:algorithm(算法)、container(容器)和iterator(迭代器)

3.将容器中的数据通过迭代器送到算法中进行运算,得到我想要的结果

4.容器相当于类模板。

5.容器可分为:序列式容器(线性的),关系型容器(非线性的)。

6.序列式容器,是可序群集,其中每个元素均有固定位置,元素的位置取决于插入时机和地点,和元素值无关。如果在容器尾添加6个元素,它们的排列次序将和添加次序一致。STL提供3个定义好的序列式容器:vector,deque,list

7.关系型容器,是一种已序群集,元素位置取决于特定的排序准则。如果将6个元素添加到这样的群集中,它们的位置取决于元素值,和插入次序无关。STL提供了4个关系型容器:set,multiset,map,multimap。

8.STL容器都必须满足以下3个条件:

      1)容器进行元素的插入操作时,内部实现的是拷贝操作,置于容器内。因此STL容器内的每一个元素都必须能够被拷贝。也就是说要存放到容器内的对象具有公有属性的拷贝构造函数。如果容器内放置的是指针类型的数据则无此要求。

      2)总体而言,所有元素形成一个次序。也就是说多次遍历每个元素时的次序总是相同的。

      3)一般而言,各项操作并非绝对安全。调用者必须确保传给操作函数的参数符合需求,违反这些需求(例如使用非法索引)会导致未定义的行为,通常STL在这个情况下不会抛出异常。



11.迭代器:迭代器是一个“可遍历STL容器內全部或部分元素”的对象。一个迭代器用來指出容器中的一个特定位置。

12.几乎STL提供的所有算法都是通过迭代器存取元素序列进行工作的,每一个容器都定义了其本身所专有的迭代器,用以存取容器中的元素。

13.将迭代器前进至下一个元素。大多数迭代器还可使用operator--退回到前一个元素。(比如在链表中指针的偏移)

14.容器中的所有区间都是左闭右开的。

15.begin()返回一个迭代器,指向容器起始点,也就是第一个元素(如果有的话)的位置。

16.end()返回一个迭代器,指向容器结束点。结束点在最后一个元素之后,这样的迭代器又称作“逾尾”迭代器。指向最后一个元素的下一个位置。

17.算法部分主要由头文件

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值