C++ STL迭代器适配器

C++ STL迭代器适配器教程,STL 中的迭代器适配器有 5 种,分别是反向迭代器适配器、插入型迭代器适配器、流迭代器适配器、流缓冲区迭代器适配器、移动迭代器适配器。

STL反向迭代器适配器

STL反向迭代器适配器教程,反向迭代器适配器(reverse_iterator),可简称为反向迭代器或逆向迭代器,常用来对容器进行反向遍历,即从容器中存储的最后一个元素开始,一直遍历到第一个元素。

STL反向迭代器使用

STL反向迭代器使用教程,STL 中的 反向迭代器适配器 提供了多个构造函数用来创建反向迭代器,我们要创建一个反向迭代器适配器有三种方式。

STL插入迭代器适配器

STL插入迭代器适配器教程,插入迭代器适配器(insert_iterator),简称插入迭代器或者插入器,其功能就是向指定容器中插入元素。

STL front_insert_iterator

STL front_insert_iterator教程,STL 中的 front_insert_iterator 和 back_insert_iterator 正好相反,front_insert_iterator 迭代器的功能是向目标容器的头部插入新元素。并且,由于此类型迭代器的底层实现需要借助目标容器的 push_front() 成员方法。

STL insert_iterator

STL insert_iterator教程,在 STL 中当需要向容器的任意位置插入元素时,就可以使用 insert_iterator 类型的迭代器。需要说明的是,该类型迭代器的底层实现,需要调用目标容器的 insert() 成员方法。

STL stream_iterator

STL stream_iterator教程,STL 中的流迭代器也是一种迭代器适配器,不过和之前讲的迭代器适配器有所差别,它的操作对象不再是某个容器,而是流对象。

STL ostream_iterator

STL ostream_iterator教程,STL 中的 ostream_iterator 和 输入流迭代器 恰好相反,输出流迭代器用于将数据写到指定的输出流(如 cout)中。另外,该类型迭代器本质上属于输出迭代器。

STL istreambuf_iterator

STL istreambuf_iterator教程,STL 中的流缓冲区迭代器可以细分为输入流缓冲区迭代器和输出流缓冲区迭代器,输入流缓冲区迭代器(istreambuf_iterator)也就是从输入流缓冲区中读取字符元素;

STL ostreambuf_iterator

STL ostreambuf_iterator教程,STL 中的 ostreambuf_iterator 迭代器和 istreambuf_iterator 输入流缓冲区迭代器恰恰相反,ostreambuf_iterator 输出流缓冲区迭代器用于将字符元素写入到指定的流缓冲区中。

STL move_iterator

STL move_iterator教程,STL 中的 move_iterator 迭代器适配器,又可简称为移动迭代器,其可以实现以移动而非复制的方式,将某个区域空间中的元素移动至另一个指定的空间。

STL move_iterator使用

STL move_iterator使用教程,STL 中的 move_iterator 的创建有四种方式,即:使用默认构造函数创建一个不指向任何对象的移动迭代器、使用初始化的方式创建、用已有的移动迭代器初始化新建的同类型迭代器和使用 make_move_iterator() 函数创建。

STL advance函数

STL advance函数教程,STL 中的 advance() 函数用于将迭代器前进(或者后退)指定长度的距离。

STL distance函数

STL distance函数教程,STL 中的 distance() 函数用于计算两个迭代器表示的范围内包含元素的个数。

STL const_iterator转iterator

STL const_iterator转iterator教程,在 STL 中,我们如果需要将 const_iterator 转换为 iterator 可以借助 advance() 和 distance() 函数。

STL begin和end函数

STL begin和end函数教程,无论是 序列式容器 还是 关联式容器(包括哈希容器),不仅模板类内部提供有 begin() 和 end() 成员方法。

STL prev和next函数

STL prev和next函数教程,STL 中的 prev 函数可用来获取一个距离指定迭代器 n 个元素的迭代器,next 函数用来获取一个距离指定迭代器 n 个元素的迭代器。