C++:STL(标准模板库)

本文详细介绍了STL中的主要组件,包括容器(如vector、list、deque)、迭代器、算法以及空间配置器和配接器。重点讲解了vector、list和deque的特点及使用方法,以及set和map作为关联容器的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

STL:主要是一些“容器”的集合;“容器”有:vector(数组)、list(双向链表)、deque(双向队列)、set(集合)、map(图:内部结构红黑树)

STL也是算法和其他一些组件的集合,是泛型编程的一个经典范例。

STL的目的是标准化组件,这样就不用重新开发,可以使用现成的组件。

  • STL六个组成部分

1、容器:特殊的数据结构,实现了数组、链表、队列等,实质是类模板。

2、迭代器:一种复杂的指针,可以通过其读写容器中的对象,实质是运算符重载。

3、算法:读写容器对象的逻辑算法:排序、遍历、查找.......,实质是模板函数。

4、空间配置器:分配空间。

5、配接器:用来修饰容器、仿函数、迭代器接口,配合仿函数使用。

6、仿函数:类似函数,通过重载()运算符来模拟函数行为的类

  • 组件间的关系

容器通过配置器取得数据存储空间,算法通过迭代器存取容器内容,仿函数可以协助算法完成不同的策略变化,配接器可以修饰或套接仿函数。

  • vector(单向数组)

规定只能从尾巴进行插入、尾巴进行删除,数组空间可扩容。

可以在中间插入删除,但不建议使用。

成员函数(迭代器相关)

begin:返回指向元素首地址的迭代器(指向元素开头),++操作(后)右走iterator

end:返回指向元素末尾的迭代器,最后一个元素的下一个位置。iterator

rbegin:逆向迭代器(指向元素末尾),++操作(前)左走reverse_iterator

rend:逆向迭代器(指向元素开头)reverse_iterator

cbegin:返回一个常量迭代器,指向vector容器的第一个元素的位置。const_iterator

cend:返回一个常量迭代器,指向容器中最后一个元素的下一个位置。const_iterator

容量

size:返回元素个数。

max_size:容量

resize:改变大小

empty:判空

重载

[ ]

at

使用方法

push_back:入栈。

back:返回最后一个元素。

pop_back:出栈,删除,无返回值。

insert:插入

swap:交换

clear:清空

sort:排序,头文件<algorithm>

erase:删除迭代器指向元素/删除一段元素

例:

vector<int>   arr;         //定义了一个名为arr的vector容器,arr容器中每个元素为int类型。

vector<vector<int>>  arr;  //定义了一个名为arr的二维容器,此容器中每个元素是一个int类型的容

器。

vector<int>  arr  (5);  //定义了一个名为arr的vector容器,vector容器中共有5个元素,每个元素

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值