1.直观理解

new_iterator = prev(iterator,n)

当“n“为正数时,返回传入迭代器“iterator”左边,距离”iterator“ n个单位的迭代器”new_iterator“。

当“n“为负数时,返回传入迭代器“iterator”右边,距离”iterator“ n个单位的迭代器"new_iterator"。

new_iterator = prev(iterator)

不写n的话,默认向“iterator”左边移动1个单位。

如果是随机访问迭代器,就只执行一次运算符操作 +=n( -=n ),否则,执行n次持续的递减或递增操作 ++(--)。

2.prev()的函数原型

template< class BidirIt >BidirIt prev(BidirIt it, typename std::iterator_traits<BidirIt>::difference_type n = 1 );template< class BidirIt >constexpr BidirIt prev(BidirIt it, typename std::iterator_traits<BidirIt>::difference_type n = 1 );

prev()的含义:
表示迭代器左移n个单位,即迭代器-n。
若移动n个单位的步长后,超出迭代器范围[begin,end),则此行为未定义。

prev()函数返回值:
函数的返回值为一个迭代器,也就是传入迭代器左移n个单位后,返回这个移动后的新迭代器。

3.测试代码:

 vector<int> vec{ 1,2,3,4,5,6,7 };vector<int>::iterator end = vec.end();for (int i = 1; i <= vec.size(); ++i){auto it = prev(end, i);cout << "end左移" << i << "个单位后的元素值为:" << *it << endl;} 

测试结果:

end左移1个单位后的元素值为:7
end左移2个单位后的元素值为:6
end左移3个单位后的元素值为:5
end左移4个单位后的元素值为:4
end左移5个单位后的元素值为:3
end左移6个单位后的元素值为:2
end左移7个单位后的元素值为:1

C++ STL prev()函数相关推荐

  1. C++ STL advance()函数(深入了解,一文学会)

    advance() 函数用于将迭代器前进(或者后退)指定长度的距离. template <class InputIterator, class Distance>     void adv ...

  2. stl vector 函数_在C ++ STL中使用vector :: begin()和vector :: end()函数打印矢量的所有元素...

    stl vector 函数 打印向量的所有元素 (Printing all elements of a vector) To print all elements of a vector, we ca ...

  3. stl vector 函数_vector :: at()函数以及C ++ STL中的示例

    stl vector 函数 C ++ vector :: at()函数 (C++ vector::at() function) vector::at() is a library function o ...

  4. stl swap函数_vector :: swap()函数以及C ++ STL中的示例

    stl swap函数 C ++ vector :: swap()函数 (C++ vector::swap() function) vector::swap() is a library functio ...

  5. stl vector 函数_vector :: crend()函数以及C ++ STL中的示例

    stl vector 函数 C ++ vector :: crend()函数 (C++ vector::crend() function) vector::crend() is a library f ...

  6. stl vector 函数_vector :: pop_back()函数以及C ++ STL中的示例

    stl vector 函数 C ++ vector :: pop_back()函数 (C++ vector::pop_back() function) vector::pop_back() is a ...

  7. stl vector 函数_vector :: push_back()函数,以及C ++ STL中的示例

    stl vector 函数 C ++ vector :: push_back()函数 (C++ vector::push_back() function) vector::push_back() is ...

  8. stl min函数_std :: min()函数以及C ++ STL中的示例

    stl min函数 C ++ STL std :: min()函数 (C++ STL std::min() function) min() function is a library function ...

  9. stl vector 函数_vector :: back()函数以及C ++ STL中的示例

    stl vector 函数 C ++ vector :: back()函数 (C++ vector::back() function) vector::back() is a library func ...

最新文章

  1. c语言中delay找不到标识符,51单片机的c语言,请问哪里错了?延时没有效果,但是编译又不报错。delay应该怎么写,怎么引用啊?...
  2. 实例解析linux内核I2C体系结构
  3. 别再说你不会!kafka延迟队列
  4. 数学建模十大算法(收藏)
  5. 小师妹学JavaIO之:用Selector来发好人卡
  6. 复杂属性的设计时支持
  7. 论文浅尝 | 多标签分类中的元学习
  8. 小公司出身的我,是如何拿下知名独角兽公司 Offer?
  9. 20200218:不同路径(leetcode62)
  10. junit单元测试不通过报documentationPluginsBootstrapper相关异常
  11. Ubuntu/Linux下7款轻量级编辑器推荐
  12. 快手用户群体分析_报告称快手用户分布与移动互联网人群分布一致
  13. 前端提高篇(三十九)CSS进阶7:columns多列布局
  14. 分析入门股票量化交易券商接口的方法
  15. 计算机论文鉴定表指导教师评语,毕业论文指导老师评语|毕业论文鉴定表评语...
  16. 史上最全Git命令学习:从基础出发,Java中高级面试题总结(全面)
  17. Android安全防护之旅---几行代码让Android应用变得更加安全
  18. chrome94+版本出现的跨域问题及解决方案
  19. Mysql rbo和cbo_oracle的优化——RBO和CBO简介以及optimizer_mode参数说明
  20. Cadence Orcad Capture 查看焊点个数的方法图文视频教程

热门文章

  1. 13.0_[Java 面向接口]-类和接口
  2. 用户存续期价值评估CLV(三) Gamma-Gamma模型 Python模拟
  3. 数据挖掘与分析课程笔记(Chapter 7)
  4. 云南贵州地区市场知名的调查研究咨询公司
  5. USACO 3.2 Sweet Butter 香甜的黄油
  6. CMS内容管理系统之文章信息模块的实现
  7. 关于 Docker 容器中东八区时间设置问题的总结
  8. PHP:Maze迷宫寻址算法(附完整源码)
  9. 基于eBox的LTC1446驱动
  10. OpenCV-用图像处理作出素描图(给你的另一半试试吧)