前闭后开区间

摘要:
任何一个STL算法,都需要获得由一对迭代器所标识的区间,用以表示操作范围。这一对迭代器所标示的是个所谓的前闭后开区间,以[first,last)表示。也就是说,整个实际范围从first开始,知道last-1。迭代器last所指的是“最后一个元素的下一位置”。这种偏移一格的标示法,带来了许多方便,例如下面两个STL算法的循环设计,就显得干净利落:1template23InputIteratorfind45{67while(first!

任何一个STL算法,都需要获得由一对迭代器(泛型指针)所标识的区间,用以表示操作范围。这一对迭代器所标示的是个所谓的前闭后开区间,以[first,last)表示。也就是说,整个实际范围从first开始,知道last-1。迭代器last所指的是“最后一个元素的下一位置”。这种偏移一格的标示法,带来了许多方便,例如下面两个STL算法的循环设计,就显得干净利落:

1 template <class InputIterator,classT>
2 
3 InputIterator find(InputIterator first,InputIterator last,const T&value)
4 
5 {
6 
7        while(first != last && *first !=value)
8 
9               ++first;
10 
11 returnfirst;
12 
13 }
14 
15  
16 
17 template <class InputIterator,class Function>
18 
19 Function for_each(InputIterator first,InputIterator last,Function f)
20 
21 {
22 
23        for(;first != last;++first)
24 
25               f(*first);
26 
27 returnf;
28 
29 }

免责声明:文章转载自《前闭后开区间》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇python 查看图片分辨率及格式动手实验01-----vCenter 微软AD认证配置与用户授权下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

2.3、Python迭代器、列表解析及生成器(0530)

1、动态语言 sys.getrefcount()      //查看对象的引用计数 增加对象的引用计数场景 对象创建时:以赋值的方式,创建变量名的同时就会创建变量 将对象添加进容器时:类似list.append() 当对象被当作参数传递给函数时 多重目标赋值时:s1 = s2 = s3 = 'abc' 为对象创建另外的变量名 减少引用计数 引用此对象...

c++ iterator(迭代器)分类及其使用

  总所周知,c++的stl中提出了iterator的概念,这是C所没有的.在一般的使用中,iterator的行为很像c内建的指针.而在java和c#中索性就直接取消了指针,而采用类似iterator的做法来代替了指针.很多编程人员在使用iterator的时候也仅仅把他当作了指针的一个变体而没有多加注意。   不过既然是学习,那我们在使用的时候也要知道其存...

Java同步数据结构之LinkedBlockingDeque

前言 前面介绍完了队列Queue/BlockingQueue的实现类,接下来介绍双端队列Deque/BlockingDeque的实现类之一LinkedBlockingDeque,它是一种基于链表的可选容量的同时支持FIFO、LIFO的阻塞双端队列。 比起前面介绍的队列实现中的节点都有一个指向下一个节点的next字段引用,双端队列为了能够实现能够从尾部添加元...

黑马程序员——JAVA学习笔记八(集合)

1,    JAVA最初版本只为最常用的数据结构提供了很少的一组类:Vector、Stack、Hashtable、BitSet与Enumeration接口,从JAVA1.2版本开始推出了一组功能完善的的数据结构。 集合类的由来:  对象用于封装特有数据,对象多了需要存储,如果对象的个数不确定。  就使用集合容器进行存储。 集合特点: 1,用于存储对象的容器...

手写Redux-Saga源码

上一篇文章我们分析了Redux-Thunk的源码,可以看到他的代码非常简单,只是让dispatch可以处理函数类型的action,其作者也承认对于复杂场景,Redux-Thunk并不适用,还推荐了Redux-Saga来处理复杂副作用。本文要讲的就是Redux-Saga,这个也是我在实际工作中使用最多的Redux异步解决方案。Redux-Saga比Redux...

深入MySQL复制(二):基于GTID复制

相比传统的MySQL复制,gtid复制无论是配置还是维护都要轻松的多。本文对gtid复制稍作介绍。 MySQL基于GTID复制官方手册:https://dev.mysql.com/doc/refman/5.7/en/replication-gtids.html 1.gtid基本概念 传统的基于binlog position复制的方式有个严重的缺点:如果s...