C++ STL(标准模板库,Standard Template Library)简介

C++ STL(标准模板库,Standard Template Library)简介

STL 包括以下三大部分:

容器(Containers)
提供存储和管理数据的结构,如动态数组、链表、哈希表等。

算法(Algorithms)
提供对容器进行操作的通用算法,如排序、查找、复制等。

迭代器(Iterators)
提供一种统一的方式来访问容器中的元素,连接容器和算法。

迭代器

C++ STL 中的迭代器类型

C++ STL 提供了不同类型的迭代器来适应不同容器的访问需求,主要包括以下几种:

  1. 输入迭代器(Input Iterator)
  • 功能:只能用来遍历数据。
  • 特性:只能读取数据,不能修改。
  • 示例istream_iterator 用于从流中读取数据。
  1. 输出迭代器(Output Iterator)
  • 功能:只能用来向容器中写入数据。
  • 特性:不能读取数据。
  • 示例ostream_iterator 用于向流中写入数据。
  1. 前向迭代器(Forward Iterator)
  • 功能:可以遍历数据,并支持前一个和下一个元素的访问。
  • 特性:可以用于读取和修改数据。
  • 示例vector<int>::iterator 是一个前向迭代器。
  1. 双向迭代器(Bidirectional Iterator)
  • 功能:支持遍历数据,支持前一个和下一个元素的访问。
  • 特性:可以向前和向后移动。
  • 示例list<int>::iterator 是一个双向迭代器。
  1. 随机访问迭代器(Random Access Iterator)
  • 功能:支持快速访问任何位置的元素(O(1) 时间复杂度)。
  • 特性:可以向前和向后移动,支持加法和减法操作。
  • 示例array<int>::iteratorvector<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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值