Iterator增量是否会产生新的迭代器?

SLN*_*SLN 2 c++ pointers iterator

当我们向(或从)指针添加(或减去)整数值时,结果是一个新指针.新指针指向原始指针前面(或后面)给定数字的元素:(pp.119 c ++ primer 5ed)

我也从书中学到,指针是迭代器(pp.118 c ++ primer 5ed).

我是否还可以声称迭代器上的算术运算创建了一个全新的迭代器.

das*_*ght 6

这本书描述了你写的情况,比如说,指针p + n在哪里p,n是一个整数.该表达式生成指针类型的新值.由您决定存储值的位置; 你也可以决定不存储它.

递增指针(即写入p += n)会将原始指针的值更改为p + n.

它对迭代器的工作方式是相同的:it + n生成一个新的迭代器,同时it += n更改现有的迭代器.

注意对于迭代器和指针,第一个表达式可以写为std::next(it, n),而第二个表达式应该写为std::advance(it, n).