微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

返回引用的指针向量的迭代器

如何解决返回引用的指针向量的迭代器

我正在为一个对象列表编写一个非拥有的包装类。在内部使用指针列表似乎对我的情况最有意义,所以我的类看起来像这样:

class MyWrapper {
    std::vector<MyObject *> m_objs;
};

现在我希望包装器是可迭代的,因为我不想编写自己的迭代器类型,所以我重用了向量的一个

class MyWrapper {
    std::vector<MyObject *> m_objs;
    
    std::vector<MyObject *>::iterator begin();
    std::vector<MyObject *>::iterator end();
};

这种方法的问题在于,这当然会产生一个迭代器,该迭代器在取消引用时会产生一个指针类型。但是,我想让迭代器取消对底层对象的引用的引用。

所以本质上我想要一个迭代器来取消引用它所指向的指针,因此它不会返回指针,而是返回对底层对象的引用。在代码中:

MyObject &test = *it;

是否有一些我可以在这里玩的迭代器魔术,让我无需编写自定义迭代器即可实现这样的目标?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。