开头声明
本文由署髫亲自撰写并非转载。
如果代码或文章内容有误,请大佬们及时指出。
部分内容是从网上复制的。
!!链接绝对安全无毒!!
点个赞呗~
STL是什么
1.定义
STL(Standard Template Library)是C++的一部分,它是一个库,包含了几个组件,如向量、列表、映射、集合等。这些组件都是通用的,可以用于不同类型的数据,是一套非常好用且强大的C++模板。
在C++中,你可以通过模板(templates)来创建自己的STL样式的数据结构。模板是C++中的一个特性,它允许你编写可以用于多种数据类型的代码。
2.组成
1.容器
2.迭代器(iterators)
3.算法(algorithms)
4.函数对象
STL具体介绍
1.容器
有一定特点存储数据的,就叫做容器
1.顺序容器:
stack--栈
C++中的stack是一种后进先出(LIFO)的数据结构,专门用于在具有后进先出操作的上下文环境中。它的删除操作只能从容器的一端进行元素的插入与提取。Stack是作为容器适配器被实现的,这意味着它是对底层容器的封装,并提供了一组特定的成员函数来访问其元素。Stack的底层容器可以是任何标准的容器类模板。默认情况下,如果没有为stack指定特定的底层容器,它将使用deque作为底层容器。
Stack的特点包括:
- 优先入栈的元素后出
- 只能查看栈顶
- 只能从栈顶插入
queue--队列
C++中的queue(队列)是一种先进先出(FIFO)的数据结构,它允许在一端添加元素(称为入队或push操作),而在另一端移除元素(称为出队或pop操作)。这种数据结构在计算机科学中非常常见,用于处理需要按照特定顺序处理元素的情况。在C++中,队列可以通过STL模板库中的
<queue>
头文件来实现。使用<queue>头文件,可以定义一个队列对象,并通过调用其成员函数来操作队列。队列的特点包括但不限于:
- 优先入栈的元素先出
- 只能查看队首
- 只能从队尾插入
deque--双端队列
C++ STL中的deque(双端队列)是一种灵活且高效的数据结构,它结合了数组和链表的优点,允许在其头部和尾部进行插入和删除操作。deque是C++标准模板库(STL)中的一个容器,全名为double-ended queue。它是一种序列容器,与vector和list类似,但提供了更多的功能。deque的内部实现是由一段段的连续空间组成,这些段之间通过指针进行连接。这种数据结构支持随机访问,即可以直接通过索引访问元素,这是通过运算符[]实现的。此外,deque还支持在两端进行元素的插入和删除操作,这是通过push_front(), push_back(), pop_front(), pop_back()等函数实现的。deque的内存管理与vector有所不同,它由多个连续的内存块组成,这些内存块之间通过指针或引用相互连接。
deque的特点包括但不限于:
- 可以从队首和队尾插入
- 可以从队首和队尾删除
vector--动态数组
C++中的vector是一个动态数组,它能够在运行时改变大小,自动管理内存。vector是C++标准模板库(STL)中的一个序列容器,它提供了许多有用的功能,如push_back、pop_back、insert、erase等&