STL 2—迭代器相关运算——advance(),distance(),next(),prev()

Posted tingweichen

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了STL 2—迭代器相关运算——advance(),distance(),next(),prev()相关的知识,希望对你有一定的参考价值。

迭代器的头文件中定义了4个实现迭代器模板的函数模板.

1、advance(iterator,num):将迭代器iterator 移动了num个位置

2、distance(iterator1,iterator2):返回两个迭代器之间的元素的个数

3、next(iterator,n):将iterator正向偏移n之后所指向位置的一个迭代器
4、prev(iterator,n):返回iterator反向偏移n之后的所指向的一个迭代器

#include <numeric>
#include <iterator>
using namespace std;
int main(){
    int data[] {1,2,3,4,5,6,7,8};
    auto iter1 = begin(data);
    // 将iter1移动3个位置
    advance(iter1,3);
    cout<<*iter1<<endl;
    cout<<"------";
    //distance(iter1,iter2);返回iter1和iter2之间的元素个数
    cout<<distance(begin(data),end(data));
    cout<<"------
";
    auto iter2 = begin(data);
    // next(iter1,n)将iter1向右偏移n个位置
    auto foiurth = next(iter2,3);
    cout<<"------";
    cout << *iter2 << "
" << *foiurth<<endl;
    auto iter3 = end(data);
    cout<<"------";
    cout << *prev(iter3,3)<<endl;
    return 0;
}

以上是关于STL 2—迭代器相关运算——advance(),distance(),next(),prev()的主要内容,如果未能解决你的问题,请参考以下文章

STL详解—— list的模拟实现

设计模式之——迭代器模式

第33天pytho学习装饰器:高级函数部分演示

STL迭代器相关的输出迭代器

Python-迭代器

什么是迭代器