C++ 实现迭代器以便对通用数组cpp进行排序

C++ 实现迭代器以便对通用数组cpp进行排序,c++,stl,C++,Stl,我的问题: 所以我想实现一个迭代器,这样我可以对这个通用的UniqueArray进行排序。 我在UniqueArray中创建了一个名为UniqueArrayIterator的嵌套类。 我到底需要重载STL中排序算法中使用的哪些运算符 **另外两个问题可以进一步加深我对迭代器的理解**: (我知道这些额外的问题没有正确地反映在标题上。我不习惯在本网站上发布问题,因此如果您认为我最好将这些问题与不同的问题分开,请通知我,我将编辑并执行此操作。) 关于常量迭代器: 我总是必须定义常量迭代器吗?你能举一

我的问题:

所以我想实现一个迭代器,这样我可以对这个通用的UniqueArray进行排序。 我在UniqueArray中创建了一个名为UniqueArrayIterator的嵌套类。 我到底需要重载STL中排序算法中使用的哪些运算符

**另外两个问题可以进一步加深我对迭代器的理解**:

(我知道这些额外的问题没有正确地反映在标题上。我不习惯在本网站上发布问题,因此如果您认为我最好将这些问题与不同的问题分开,请通知我,我将编辑并执行此操作。)

关于常量迭代器: 我总是必须定义常量迭代器吗?你能举一个例子来说明如何重载一个从非常量到常量迭代器的转换(忘记它是如何被调用的)操作符吗?在定义常量迭代器时应该避免什么? 给定一个非常量迭代器类,定义常量迭代器类并避免代码重复的最佳方法是什么

关于简化嵌套迭代器类的定义

背景- 我有一个设置了最大大小的数组,但我可以删除和插入对象。在我的实现中,我创建了一个可以有空空间的最大大小数组。给定一个元素,我可以访问它的索引。另外,它是否有空的空间也无关紧要,因为索引集不应该总是1到N,所以它是完全可行的

实现应如下所示: (假设我们在元素*的内部数组上运行,该数组可以包含空值,并且当前位置是索引)

元素运算符++()常量{
元素温度=*元素[索引]
而(!elements[index]&&index
现在,外部类应该不能访问某些“索引”中的内容。(这是我需要迭代器的部分原因)。所以我把这个班当成了朋友。但是,++操作符取决于迭代器所属的UniqueArray的值,所以困扰我的是,我还必须保留一个指向它所属的UniqueArray的指针

问题-
如果我正在定义一个内部迭代器类,并且我基本上希望使用外部类的值,除了保存指向外部类的指针之外,还有其他方法吗?就像在java中,您可以实现iterable,并且它可以相对于当前对象进行更改?

请参阅:为什么不使用
typedef t*迭代器相反?我已经这么做了,但是谢谢你。它使事情变得简单。实际上。。。出于某种原因,试图这样做会给我带来错误。
Element operator++() const{

    Element temp = *elements[index]
    while(!elements[index] && index < max_size) index++;
    return temp;
}