C++ 求序列中最后一个值的算法

C++ 求序列中最后一个值的算法,c++,algorithm,data-structures,C++,Algorithm,Data Structures,我目前正在制作数据结构库,现在我正在尝试制作一些能够处理这些数据结构的算法 我没有使用迭代器,而是使用范围的概念,也没有使用单个类别标记,而是使用两个不同的标记:一个用于遍历,一个用于访问元素。我有以下遍历概念:单向范围、双向范围和随机访问范围,以及以下访问概念:不可变范围和可变范围 我想问一下,实际实现某种算法是否有意义,该算法将查找序列中的最后一个事件,或者只允许双向范围使用反向范围来实现这一点 我知道如何使用单向范围实现该算法,但如果该范围中不存在元素,该算法的返回值应该是多少?当我想在一

我目前正在制作数据结构库,现在我正在尝试制作一些能够处理这些数据结构的算法

我没有使用迭代器,而是使用范围的概念,也没有使用单个类别标记,而是使用两个不同的标记:一个用于遍历,一个用于访问元素。我有以下遍历概念:单向范围、双向范围和随机访问范围,以及以下访问概念:不可变范围和可变范围

我想问一下,实际实现某种算法是否有意义,该算法将查找序列中的最后一个事件,或者只允许双向范围使用反向范围来实现这一点


我知道如何使用单向范围实现该算法,但如果该范围中不存在元素,该算法的返回值应该是多少?当我想在一个方向范围内找到最后一个引用时,我实际上从开始到结束遍历。当我对双向范围执行相同的算法时,我从rbegin遍历到rend。如果元素不在一个方向范围内,返回一个过去的最后一个元素有意义吗?

如果您可以1)访问任何元素,2)知道范围的大小。然后你可以访问最后一个元素。你必须以某种方式表示“未找到”,并且你应该对此保持一致。除非你知道更好地复制STL的功能似乎是个好主意。你可以简单地使用@AlexanderBily。STL的
rend
呢?迭代器范围“概念”只知道一个有效迭代器,它不被认为是范围本身的一部分,这是最后一个。将此迭代器作为“未找到”的信号返回在整个算法库中是一致的(如果可能的话),这是非常有用的。