gpt4 book ai didi

c++ - 前向迭代器,如何返回 const 值

转载 作者:行者123 更新时间:2023-11-30 00:45:45 25 4
gpt4 key购买 nike

我做了一个动态数组类,数组中的每个元素都是通过这样的结构定义的

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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com