我做了一个动态数组类,数组中的每个元素都是通过这样的结构定义的
template <typename T>
struct element{
int i;
int j;
T val;
};
我为我的类定义了forward iterator和const iterator,迭代器需要返回返回i, j, val
但是只有val可以修改,i
and j
不可修改。
我该怎么做?
最佳答案
扩展@Bathsheba 的回答,你的迭代器可以返回这个结构:
template<typename T>
struct element_ref {
const int& i;
const int& j;
T& val;
element_ref(element& e) : i(e.i), j(e.j), val(e.val) {}
};
它的构造函数获取实际元素并存储对其字段的引用。只有 val
引用是可修改的。
关于c++ - 前向迭代器,如何返回 const 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42085590/