C++ STL prev()函数
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()函数相关推荐
- C++ STL advance()函数(深入了解,一文学会)
advance() 函数用于将迭代器前进(或者后退)指定长度的距离. template <class InputIterator, class Distance> void adv ...
- 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 ...
- stl vector 函数_vector :: at()函数以及C ++ STL中的示例
stl vector 函数 C ++ vector :: at()函数 (C++ vector::at() function) vector::at() is a library function o ...
- stl swap函数_vector :: swap()函数以及C ++ STL中的示例
stl swap函数 C ++ vector :: swap()函数 (C++ vector::swap() function) vector::swap() is a library functio ...
- stl vector 函数_vector :: crend()函数以及C ++ STL中的示例
stl vector 函数 C ++ vector :: crend()函数 (C++ vector::crend() function) vector::crend() is a library f ...
- stl vector 函数_vector :: pop_back()函数以及C ++ STL中的示例
stl vector 函数 C ++ vector :: pop_back()函数 (C++ vector::pop_back() function) vector::pop_back() is a ...
- stl vector 函数_vector :: push_back()函数,以及C ++ STL中的示例
stl vector 函数 C ++ vector :: push_back()函数 (C++ vector::push_back() function) vector::push_back() is ...
- stl min函数_std :: min()函数以及C ++ STL中的示例
stl min函数 C ++ STL std :: min()函数 (C++ STL std::min() function) min() function is a library function ...
- stl vector 函数_vector :: back()函数以及C ++ STL中的示例
stl vector 函数 C ++ vector :: back()函数 (C++ vector::back() function) vector::back() is a library func ...
最新文章
- c语言中delay找不到标识符,51单片机的c语言,请问哪里错了?延时没有效果,但是编译又不报错。delay应该怎么写,怎么引用啊?...
- 实例解析linux内核I2C体系结构
- 别再说你不会!kafka延迟队列
- 数学建模十大算法(收藏)
- 小师妹学JavaIO之:用Selector来发好人卡
- 复杂属性的设计时支持
- 论文浅尝 | 多标签分类中的元学习
- 小公司出身的我,是如何拿下知名独角兽公司 Offer?
- 20200218:不同路径(leetcode62)
- junit单元测试不通过报documentationPluginsBootstrapper相关异常
- Ubuntu/Linux下7款轻量级编辑器推荐
- 快手用户群体分析_报告称快手用户分布与移动互联网人群分布一致
- 前端提高篇(三十九)CSS进阶7:columns多列布局
- 分析入门股票量化交易券商接口的方法
- 计算机论文鉴定表指导教师评语,毕业论文指导老师评语|毕业论文鉴定表评语...
- 史上最全Git命令学习:从基础出发,Java中高级面试题总结(全面)
- Android安全防护之旅---几行代码让Android应用变得更加安全
- chrome94+版本出现的跨域问题及解决方案
- Mysql rbo和cbo_oracle的优化——RBO和CBO简介以及optimizer_mode参数说明
- Cadence Orcad Capture 查看焊点个数的方法图文视频教程