指向指针结构的指针的迭代器

Iterator over pointer to pointer structure

我在两个结构上编写了一个自定义容器:一个 T T* _a 数组和一个指向 T T** _b 的指针数组。 第一个数组是一个简单的数组,第二个数组包含指向第一个数组的单元格的指针。

两个结构的迭代器都是常量和随机访问的。我已经实现了所有方法,第一个结构的迭代器工作正常。对于第二个......不是那么多。 编译时,当我尝试使用 begin()end():

遍历元素时出现此错误
error: invalid conversion from ‘int**’ to ‘const int**’ [-fpermissive]
         return const_iterator(_b);

但我不知道如何解决它。我明白这是因为构造函数要求一个指向常量指针的指针

const_iterator(const T **p) : ptr(p) {}

但这不是我所拥有的,因为 _b 是容器的一个属性,它不是常量。对于另一个迭代器,它工作得很好(唯一改变的是迭代器中的几个解引用 class)。

Here's the code of the problematic iterator. Here's 有效的那个。除了我做的那个,应该还有什么区别?谢谢!

答案正如 Igor 在关于 int** 转换为 const int** 的评论中所说。我认为它像 int* 一样工作,但事实并非如此。我找到了更多信息 here