本节我们将继续进行迭代器函数的学习,由于next(it , n)和prev(it , n)功能上极为”相似“,所以笔者进行统一讲解。

这里it参数指的是迭代器,n可为'+'、'-',需要根据容器进行选择(比如你总不会使用forward_list容器来进行后退操作),函数会返回将'it'进行'n'次移动操作后的迭代器。具体通过代码来展示:

#include<iostream>
#include<iterator>
#include<vector>
#include<map> 
#include<string>
using namespace std;
void test()
{
/*next(it , n)和prev(it , n)*/
map<string,string> mp{
{"Dotcpp","dotcpp.com"},
{"C语言教程","https://www.dotcpp.com/course/c/"},
{"计算机二级C语言","https://www.dotcpp.com/course/erjic/"},
{"数据结构教程","https://www.dotcpp.com/course/ds/"},
{"Linux命令","https://www.dotcpp.com/course/linuxcmd/"}
};//初始化列表
cout << "遍历map容器:\n";
for(map<string,string>::iterator it = mp.begin();it!=mp.end();++it)
{
cout   <<"想要学习【" << it->first << "】可以访问【" <<it->second << "】\n";
}
cout << '\n';
map<string,string>::iterator it = next(mp.begin(),2);//移动到第3个元素
cout <<"想要学习【" << it->first << "】可以访问【" <<it->second << "】\n"; 
map<string,string>::iterator rit = prev(mp.end(),3);//移动到第3个元素
cout <<"想要学习【" << rit->first << "】可以访问【" <<it->second << "】\n"; 
}
int main(){
    system("title dotcpp.com");
    test();
    return 0;
}

编译结果如下:

prev(it , n)和next(it , n)

我们通过prev()和next()都能得到Linux学习网站。

总结:通过prev()和next()迭代器函数对迭代器进行移动,获取目标迭代器,但是读者需要注意在合法区间内进行移动,保持”数组越界“的警惕性!

点赞(0)

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

Dotcpp在线编译      (登录可减少运行等待时间)