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(){
,,,,,,,};
auto iter1 = begin(data);
// 将iter1移动3个位置
advance(iter1,);
cout<<*iter1<<endl;
cout<<"------";
//distance(iter1,iter2);返回iter1和iter2之间的元素个数
cout<<distance(begin(data),end(data));
cout<<"------\n";
auto iter2 = begin(data);
// next(iter1,n)将iter1向右偏移n个位置
auto foiurth = next(iter2,);
cout<<"------";
cout << *iter2 << "\n" << *foiurth<<endl;
auto iter3 = end(data);
cout<<"------";
cout << *prev(iter3,)<<endl;
;
}
STL 2—迭代器相关运算——advance(),distance(),next(),prev()的更多相关文章
- STL的迭代器和类型萃取
今天就可以把STL库中迭代器的实现,和类型萃取好好整理一下了 迭代器的设计思维是STL的关键所在,在STL的实际运用和泛型思维,迭代器都扮演着十分重要的角色,STL力求把数据容器和算法的概念分开来,于 ...
- STL之迭代器(iterator)
1 头文件 所有容器有含有其各自的迭代器型别(iterator types),所以当你使用一般的容器迭代器时,并不需要含入专门的头文件.不过有几种特别的迭代器,例如逆向迭代器,被定义于<iter ...
- 带你深入理解STL之迭代器和Traits技法
在开始讲迭代器之前,先列举几个例子,由浅入深的来理解一下为什么要设计迭代器. //对于int类的求和函数 int sum(int *a , int n) { int sum = 0 ; for (in ...
- js 时间函数 及相关运算大全
js 时间函数 及相关运算大全 var myDate = new Date(); myDate.getYear(); //获取当前年份(2位) myDate.getFullYear(); ...
- STL : 反向迭代器(Reverse Iterator)
1. 定义反向迭代器(Reverse Iterator)是一种反向遍历容器的迭代器.也就是,从最后一个元素到第一个元素遍历容器.反向迭代器将自增(和自减)的含义反过来了:对于反向迭代器,++运算将访问 ...
- C++ 标准模板库(STL)——迭代器(iterators)的用法及理解
C++ STL中迭代器(iterators)用于遍历对象集合的元素.由于容器大小随着插入删除等操作动态改变,无法像静态数组那样获取数组长度然后遍历容器里的所有元素:这时就需要迭代器,每次从容器内第一个 ...
- STL学习笔记(迭代器相关辅助函数)
advance()可令迭代器前进 #include <iterator> void advance(InputIterator& pos,Dist n); 面对Random Acc ...
- STL基础--迭代器和算法
1 迭代器 Iterators 5种迭代器类型 随机访问迭代器: vector, deque, array // 允许的操作 vector<int> itr; itr = itr + 5; ...
- STL之迭代器(iterator)
STL的中心思想在于:将数据容器和算法分开,彼此独立设计,最后再用一帖粘着剂将它们撮合在一起.没错,这个粘着剂正是迭代器(iterator).迭代器的主要目的是通过遍历来对容器中元素进行相关操作.算法 ...
随机推荐
- M斐波那契数列(矩阵快速幂+费马小定理)
M斐波那契数列 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)Total Sub ...
- NIO学习笔记五:Buffer 的使用
Java NIO中的Buffer用于和NIO通道进行交互.数据是从通道读入缓冲区,从缓冲区写入到通道中. 缓冲区本质上是一块可以写入数据,然后可以从中读取数据的内存.这块内存被包装成NIO Buffe ...
- HDU1203(01背包)
I NEED A OFFER! Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)T ...
- Vue: 生命周期, VueRouter
Vue实例的生命周期: beforeCreate: 实例创建之前除标签外,所有的vue实例需要的数据,事件都不存在 created: 实例被创建之后,data和事件已经被解析到,el还没有找到 ...
- 根据python上下文管理,写一个在读文件内容前后自动打开关闭文件的程序
利用上下文管理实现读f文件前后自动打开关闭文件#在本目录创建f文件,内容写monkey代码如下 import contextlib #导入模块1 @contextlib.contextmanager# ...
- CSS十大选择器
CSS十大选择器: 1.id选择器 # 2.class选择器 句号 . 3.标签选择器 标签名称 4.相邻选择器 加号 + 5.后代选择器 空格 6.子元素选择器 大于号 > 7.多元素 ...
- js-权威指南-Web套接字
HTTP是一种无状态的协议,,由客户端请求和服务端响应组成.HTTP实际上是比较特殊的网络协议. 大多数基于因特网的网络连接通常包含长连接和基于TCP套接字的双向消息交换.让不信任的客户端脚本访问底层 ...
- js-ES6学习笔记-Generator函数的异步应用
1.ES6 诞生以前,异步编程的方法,大概有下面四种. 回调函数 事件监听 发布/订阅 Promise 对象 Generator 函数将 JavaScript 异步编程带入了一个全新的阶段. 2.所谓 ...
- 【代码笔记】iOS-SDWebImage的使用
一,工程图. 二,代码. RootViewController.m #import "RootViewController.h" //加入头文件 #import "UII ...
- CSS文字超出指定长度,用省略号
overflow:hidden; text-overflow:ellipsis; white-space:nowrap; display: block;