这里写目录标题
C++ STL(标准模板库,Standard Template Library)简介
STL 包括以下三大部分:
容器(Containers)
提供存储和管理数据的结构,如动态数组、链表、哈希表等。
算法(Algorithms)
提供对容器进行操作的通用算法,如排序、查找、复制等。
迭代器(Iterators)
提供一种统一的方式来访问容器中的元素,连接容器和算法。
迭代器
C++ STL 中的迭代器类型
C++ STL 提供了不同类型的迭代器来适应不同容器的访问需求,主要包括以下几种:
- 输入迭代器(Input Iterator)
- 功能:只能用来遍历数据。
- 特性:只能读取数据,不能修改。
- 示例:
istream_iterator用于从流中读取数据。
- 输出迭代器(Output Iterator)
- 功能:只能用来向容器中写入数据。
- 特性:不能读取数据。
- 示例:
ostream_iterator用于向流中写入数据。
- 前向迭代器(Forward Iterator)
- 功能:可以遍历数据,并支持前一个和下一个元素的访问。
- 特性:可以用于读取和修改数据。
- 示例:
vector<int>::iterator是一个前向迭代器。
- 双向迭代器(Bidirectional Iterator)
- 功能:支持遍历数据,支持前一个和下一个元素的访问。
- 特性:可以向前和向后移动。
- 示例:
list<int>::iterator是一个双向迭代器。
- 随机访问迭代器(Random Access Iterator)
- 功能:支持快速访问任何位置的元素(O(1) 时间复杂度)。
- 特性:可以向前和向后移动,支持加法和减法操作。
- 示例:
array<int>::iterator和vector<int>::iterator是随机访问迭代器。
如何获得迭代器
迭代器通常由容器的成员函数提供,常见的获取迭代器的方法如下:
begin():返回指向容器第一个元素的迭代器。
end():返回指向容器最后一个元素之后位置的迭代器(即尾后迭代器)。
#include <iostream>
#include <vector>
using namespace std;
int main() {
vector<int> myVector = {
1, 2, 3, 4, 5};
// 获取容器的迭代器
vector<int>::iterator it = myVector.begin();
// 输出第一个元素
cout << *it << endl; // 输出 1
// 移动迭代器,指向第二个元素
++it;
cout << *it << endl

简介&spm=1001.2101.3001.5002&articleId=143893840&d=1&t=3&u=ed3ecd63d8cc460b816c5a78cc7be0d7)
2万+

被折叠的 条评论
为什么被折叠?



