Cpp Standard Library 简明教程

C++ Library - <iterator>

Introduction

这是一个指针状对象,可以使用++增量,使用*解引用,并可以使用!=与另一个迭代器比较。

Categories

category

properties

valid expressions

all categories

copy-constructible, copy-assignable and destructible

X b(a); b = a;

It can be incremented

a a

Random Access

Bidirectional

Forward

Input

It supports equality/inequality comparisons

a == b a != b

可以将其作为一个右值进行解引用。

*a a→m

Output

可以将其作为一个左值进行解引用(仅适用于可变迭代器类型)。

*a = t *a++ = t

default-constructible

X a; X()

多遍:既不影响解引用也不影响增量对解引用能力的影响。

{ b = a; *a++; *b; }

It can be decremented

--a a-- *a--

它支持算术运算符+和-。

a + nn + aa - na - b

它支持迭代器之间的不相等比较(<、>、⇐和>=)。

a < ba > ba ⇐ ba >= b

它支持复合赋值运算+=和-=。

a += na -= n

它支持偏移解引用运算符([])。

a[n]

Functions

Sr.No.

Functions & Description

1

advance 它将迭代器向前推进 n 个元素位置。

2

distance 它返回迭代器之间的距离。

3

begin 它用于开始一个迭代器。

4

end 它用于结束一个迭代器。

5

prev 它用于获取指向前一元素的迭代器。

6

next 它用于获取指向后一元素的迭代器。

Iterator generators

Sr.No.

Iterator generators & Description

1

back_inserter 它构造反向插入迭代器。

2

inserterIt constructs insert iterator

3

make_move_iterator 它构造移动迭代器。

Classes

Sr.No.

Classes & Description

1

iteratorIt iterators base class.

2

iterator_traits 它是一个迭代器特征。

Predefined iterators

Sr.No.

Predefined iterators & Description

1

reverse_iterator 它是一个反向迭代器。

2

move_iterator 它是一个移动迭代器。

3

back_insert_iterator 它是一个反向插入迭代器。

4

front_insert_iterator 它是一个前向插入迭代器。

5

insert_iterator 它用于插入一个迭代器。

6

istream_iterator 它是一个输入流迭代器。

7

ostream_iterator 它是一个输出流迭代器。

8

istreambuf_iterator 它是一个输入流缓冲区迭代器。

7

ostreambuf_iterator 它是一个输出流缓冲区迭代器。

Category tags

Sr.No.

Category tags & Description

1

input_iterator_tagInput iterator category.

2

output_iterator_tagoutput iterator category.

3

forward_iterator_tagForward iterator category.

4

bidirectional_iterator_tagBidirectional iterator category.

5

random_access_iterator_tagRandom-access iterator category.